课题学习(十)----阅读《基于数据融合的近钻头井眼轨迹参数动态测量方法》论文笔记

本文主要是介绍课题学习(十)----阅读《基于数据融合的近钻头井眼轨迹参数动态测量方法》论文笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、 引言

   该论文针对三轴加速度计、磁通门和速率陀螺随钻测量系统,建立了基于四元数井眼轨迹参数测量模型,并依据状态方程和量测方程,应用2个扩卡尔曼滤波器、1个无迹卡尔曼滤波器和磁干扰校正系统对加速度计、磁通门信号进行滤波、校正,形成了基于数据融合的近钻头井眼轨迹参数动态测量方法。
   基于数据融合算法的近钻头井眼轨迹参数动态测量方法的测量流程如下图所示:
在这里插入图片描述
   测量步骤:
   1. 将加速度计、磁通门、转动角速度四元数带入KF1滤波器,进行扩展卡尔曼滤波,得出井斜角、方位角估计值:
在这里插入图片描述
   2. 将加速度计四元数带入KF2 滤波器,进行扩展卡尔曼滤波,得出测深增量 Δ h m \Delta h_m Δhm
在这里插入图片描述
   3. 将测深增量 Δ h m \Delta h_m Δhm、井斜角、方位角估计值带入KF3 滤波器,进行无迹卡尔曼滤波,得出井斜角、方位角最终估计值:
在这里插入图片描述
   4.利用井斜角、方位角最终估计值计算磁性工具面角 ω m \omega_m ωm与重力工具面角的差 Δ ω \Delta\omega Δω
在这里插入图片描述
   5.利用磁性工具面角和角差 Δ ω \Delta\omega Δω求出重力工具面角 ω g \omega_g ωg
在这里插入图片描述
   后面的部分会对上述五个步骤进行详细的介绍,下面将进行近钻头动态井眼轨迹测量模型的探讨。

1.1 近钻头动态井眼轨迹测量模型

   近钻头动态测量系统由三轴加速度计、三轴磁通门和角速率陀螺仪组成,根据地理坐标系 O − N E D O-NED ONED 和钻具坐标系 O − x y z O-xyz Oxyz 的对应关系,建立欧拉角转换矩阵,并转换为四元数,k 时刻姿态转换矩阵T表示为:
在这里插入图片描述
   T ( k ) = [ q 0 2 + q 1 2 − q 2 2 − q 3 2 2 ( q 1 q 2 − q 0 q 3 ) 2 ( q 1 q 3 + q 0 q 2 ) 2 ( q 1 q 2 + q 0 q 3 ) q 0 2 − q 1 2 + q 2 2 − q 3 2 2 ( q 2 q 3 − q 0 q 1 ) 2 ( q 1 q 3 − q 0 q 2 ) 2 ( q 2 q 3 + q 1 q 0 ) q 0 2 − q 1 2 − q 2 2 + q 3 2 ] T(k)=\begin{bmatrix}q_0^2+q_1^2-q_2^2-q_3^2&2(q_1q_2-q_0q_3)&2(q_1q_3+q_0q_2)\\ 2(q_1q_2+q_0q_3)&q_0^2-q_1^2+q_2^2-q_3^2&2(q_2q_3-q_0q_1)\\2(q_1q_3-q_0q_2)&2(q_2q_3+q_1q_0)&q_0^2-q_1^2-q_2^2+q_3^2\end{bmatrix} T(k)= q02+q12q22q322(q1q2+q0q3)2(q1q3q0q2)2(q1q2q0q3)q02q12+q22q322(q2q3+q1q0)2(q1q3+q0q2)2(q2q3q0q1)q02q12q22+q32
   OK,模型、四元数建立完成,下面仔细品味五个步骤:

二、 数据融合近钻头井眼轨迹参数动态测量方法

2.1 估计近钻头井斜角、方位角的扩展卡尔曼滤波算法KF-1

在这里插入图片描述
   基于四元数的KF1 的状态方程和量测方程:
Q ( k + 1 ) = ( I + t s A ( k ) ) Q ( k ) + w ( k ) Q(k+1)=(I+t_sA(k))Q(k)+w(k) Q(k+1)=(I+tsA(k))Q(k)+w(k)
Z ( k + 1 ) = F ( Q ( k ) ) + v ( k ) Z(k+1)=F(Q(k))+v(k) Z(k+1)=F(Q(k))+v(k)
   Q(k) 为k 时刻的状态值;I 为单位矩阵;ts 为采样周期;w(k) 为k 时刻系统高斯白噪声;v(k) 为k 时刻传感器观测噪声;A(k) 为k 时刻状态转移矩阵;F(x) 为非线性函数;Z(k+1) 为k+1 时刻的观测值。
   Z ( k + 1 ) = [ B x B y B z a x a y a z ] = [ T ( k ) [ B c o s θ 0 B s i n θ ] T ( k ) [ 0 0 g ] ] + v ( k ) Z(k+1)=\begin{bmatrix}B_x\\B_y\\B_z\\a_x\\a_y\\a_z\end{bmatrix}=\begin{bmatrix}T(k)\begin{bmatrix}Bcos\theta\\0\\Bsin\theta\end{bmatrix}\\T(k)\begin{bmatrix}0\\0\\g\end{bmatrix}\end{bmatrix}+v(k) Z(k+1)= BxByBzaxayaz = T(k) Bcosθ0Bsinθ T(k) 00g +v(k)
   Q ( k + 1 ) = ( I + t s [ 0 − w x ( k ) − w y ( k ) − w z ( k ) w x ( k ) 0 w z ( k ) − w y ( k ) w y ( k ) − w z ( k ) 0 w x ( k ) w z ( k ) w y ( k ) − w x ( k ) 0 ] ) Q(k+1)=\begin{pmatrix}I+t_s\begin{bmatrix}0&-w_x(k)&-w_y(k)&-w_z(k)\\w_x(k)&0&w_z(k)&-w_y(k)\\w_y(k)&-w_z(k)&0&w_x(k)\\w_z(k)&w_y(k)&-w_x(k)&0\end{bmatrix}\end{pmatrix} Q(k+1)= I+ts 0wx(k)wy(k)wz(k)wx(k)0wz(k)wy(k)wy(k)wz(k)0wx(k)wz(k)wy(k)wx(k)0
  

三轴加速度信号、三轴磁通门信号、角速率陀螺信号进行数据融合后,采用扩展卡尔曼滤波算法,得到最优姿态估计,动态解算出钻井工具的实时姿态参数,确保钻具姿态测量计算的精度,减少计算量,对四元数Q 进行更新

   上述是论文中的引用,这句话我在思考了好几分钟,精简了一下:三轴加速度信号、三轴磁通门信号、角速率陀螺信号进行数据融合后,采用扩展卡尔曼滤波算法,得到最优姿态估计;并使用上式,通过陀螺仪测得的三轴角速度对四元数Q 进行更新,计算经过KF1滤波后的下面各值: 井斜角 α K F 1 = a r c t a n 2 ( q 0 q 1 + q 2 q 3 ) 1 − 2 ( q 1 2 + q 2 2 ) 井斜角\alpha_{KF1}=arctan\frac{2(q_0q_1+q_2q_3)}{1-2(q_1^2+q_2^2)} 井斜角αKF1=arctan12(q12+q22)2(q0q1+q2q3)
方位角 ϕ K F 1 = a r c t a n 2 ( q 0 q 3 + q 1 q 2 ) 1 − 2 ( q 0 2 + q 3 2 ) 方位角\phi_{KF1}=arctan\frac{2(q_0q_3+q_1q_2)}{1-2(q_0^2+q_3^2)} 方位角ϕKF1=arctan12(q02+q32)2(q0q3+q1q2)
高边工具面角 ω g , K F 1 = a r c t a n ( q 0 q 2 + q 1 q 3 ) ( q 0 q 1 − q 2 q 3 ) 高边工具面角\omega_{g,KF1}=arctan\frac{(q_0q_2+q_1q_3)}{(q_0q_1-q_2q_3)} 高边工具面角ωg,KF1=arctan(q0q1q2q3)(q0q2+q1q3)
磁性工具面角 ω m , K F 1 = a r c t a n ( q 0 q 2 + q 0 q 3 ) c o s θ + ( q 1 q 2 + q 0 q 3 ) s i n θ ( q 0 2 − q 1 2 − q 2 2 + q 3 2 ) c o s θ + ( q 1 q 3 − q 0 q 2 ) s i n θ 磁性工具面角\omega_{m,KF1}=arctan\frac{(q_0q_2+q_0q_3)cos\theta+(q_1q_2+q_0q_3)sin\theta}{(q_0^2-q_1^2-q_2^2+q_3^2)cos\theta+(q_1q_3-q_0q_2)sin\theta} 磁性工具面角ωm,KF1=arctan(q02q12q22+q32)cosθ+(q1q3q0q2)sinθ(q0q2+q0q3)cosθ+(q1q2+q0q3)sinθ

2.2 估计近钻头测深增量的扩展卡尔曼滤波算法

在这里插入图片描述
   根据 a z = T ( k ) g + v ( k ) a_z=T(k)g+v(k) az=T(k)g+v(k),运用扩展卡尔曼滤波器计算系统经过ts 后测深增量 Δ h m \Delta h_m Δhm

z 轴加速度计主要受到重力加速度和振动的干扰,由于采样时间 t s t_s ts为毫秒级,在单位采样周期内,重力加速度和振动的干扰可以视为近似相同,可以忽略振动对加速度计测量结果的影响。

   k 为当前采样点,z 轴加速度增量 Δ a z \Delta a_z Δaz Δ a z = a z ( k + 1 ) − g c o s ( α K F 1 ( k ) ) \Delta a_z=a_z(k+1)-gcos(\alpha_{KF1}(k)) Δaz=az(k+1)gcos(αKF1(k)) Δ a z = Δ h m ′ ′ \Delta a_z=\Delta h_m'' Δaz=Δhm′′
   为了提高对测深增量的估计,对Δhm 进行二阶泰勒展开: Δ h m ( k + 1 ) = Δ h m ( k ) + Δ h m ( k ) ′ t s + 0.5 Δ h m ( k ) ′ ′ t s 2 \Delta h_m(k+1)=\Delta h_m(k)+\Delta h_m(k)'t_s+0.5\Delta h_m(k)''t_s^2 Δhm(k+1)=Δhm(k)+Δhm(k)ts+0.5Δhm(k)′′ts2
   通过对上式对 t s t_s ts分别求一次导、二次导,可得到下面的矩阵表达式:
   KF2 的状态方程和量测方程为: [ Δ h m ( k + 1 ) Δ h m ( k + 1 ) ′ Δ h m ( k + 1 ) ′ ′ ] = [ 1 t s t s 2 0 1 0 0 0 1 ] [ Δ h m ( k + 1 ) Δ h m ( k + 1 ) ′ Δ h m ( k + 1 ) ′ ′ ] + w ( k ) \begin{bmatrix}\Delta h_m(k+1)\\\Delta h_m(k+1)'\\\Delta h_m(k+1)''\end{bmatrix}=\begin{bmatrix}1&t_s&t_s^2\\0&1&0\\0&0&1\end{bmatrix}\begin{bmatrix}\Delta h_m(k+1)\\\Delta h_m(k+1)'\\\Delta h_m(k+1)''\end{bmatrix}+w(k) Δhm(k+1)Δhm(k+1)Δhm(k+1)′′ = 100ts10ts201 Δhm(k+1)Δhm(k+1)Δhm(k+1)′′ +w(k)
Δ a z = [ 0 0 1 ] [ Δ h m ( k + 1 ) Δ h m ( k + 1 ) ′ Δ h m ( k + 1 ) ′ ′ ] + v ( k ) \Delta a_z=\begin{bmatrix}0&0&1\end{bmatrix}\begin{bmatrix}\Delta h_m(k+1)\\\Delta h_m(k+1)'\\\Delta h_m(k+1)''\end{bmatrix}+v(k) Δaz=[001] Δhm(k+1)Δhm(k+1)Δhm(k+1)′′ +v(k)

2.3 估计近钻头井眼轨迹参数的无迹卡尔曼滤波算法

在这里插入图片描述
   如下图所示,在单位采样时间内,井眼轨迹趋于平滑曲线,可以根据前面2 个测点的狗腿度和KF2输出测深增量对井眼轨迹进行递归式预测:
在这里插入图片描述
   补充一点关于狗腿度的定义(文字、图片均来源于百度百科!!!):

狗腿度:从井眼内的一点到另一个点,井眼前进方向变化的角度。该角度既反映了井斜角度的变化,又反映了方位角度的变化,通常又叫全角变化率或井眼曲率。
在这里插入图片描述

   下面又是一堆公式袭来,狗腿度的公式是真看不明白,直接截图了:
在这里插入图片描述
在这里插入图片描述

   KF3 滤波后的井斜角和方位角: α K F 3 = α ( k + 1 ) + v α ( k ) \alpha_{KF3}=\alpha(k+1)+v_{\alpha}(k) αKF3=α(k+1)+vα(k)
ϕ K F 3 = ϕ ( k + 1 ) + v ϕ ( k ) \phi_{KF3}=\phi(k+1)+v_{\phi}(k) ϕKF3=ϕ(k+1)+vϕ(k)
   v α 、 v ϕ v_{\alpha}、v_{\phi} vαvϕ分别为井斜角和方位角的系统观测噪声。

2.4 近钻头重力工具面角的估计

在这里插入图片描述
   根据旋转测量原理(这个我没找到相关定义,在本篇论文的参考文献12~13中应该有介绍):同一时刻的重力工具面角与磁工具面角的差与测量时刻的井斜角、方位角、地磁倾角呈现一定函数关系。根据KF3 求出的井眼井斜角和方位角计算磁性工具面角与重力工具面角的差Δω: Δ ω = − 90 + a r c t a n s i n ϕ K F 3 c o s α K F 3 c o s ϕ K F 3 − t a n θ s i n α K F 3 \Delta\omega=-90+arctan\frac{sin\phi_{KF3}}{cos\alpha_{KF3}cos\phi_{KF3}-tan\theta sin \alpha_{KF3}} Δω=90+arctancosαKF3cosϕKF3tanθsinαKF3sinϕKF3
   根据Δω,计算旋近钻头动态重力工具面角估计值 ω d g , e ω_{dg,e} ωdg,e ω d g , e = ω m , K F 3 + Δ ω ω_{dg,e}=\omega_{m,KF3}+\Delta\omega ωdg,e=ωm,KF3+Δω
   我觉得在此处, ω m , K F 3 \omega_{m,KF3} ωm,KF3应该是 ω m , K F 1 \omega_{m,KF1} ωm,KF1,当然,从算法的框架图看出也没啥问题,但是 ω m , K F 1 \omega_{m,KF1} ωm,KF1是在KF1中给出明确的公式的。
在这里插入图片描述

2.5 磁干扰情况下的磁性工具面角

在这里插入图片描述

   该部分主要降低磁干扰。磁场的干扰导致磁通门测量的磁场强度发生偏移和变形。磁干扰下的测量结果如下图 所示:
在这里插入图片描述
   在实际钻井过程中,井下仪器旋转一圈时,钻深可以忽略不计,可以看作仪器在原地旋转了一圈。z 轴磁通门的测量结果可以认为没有发生变化,而x 轴和y 轴磁通门的测量值不断发生变化,如上图所示。三轴磁通门传感器的测量数据记为(Bx,By,Bx),地球磁场可以看成一个固定值,即: B x 2 + B y 2 + B z 2 = C 2 B_x^2+B_y^2+B_z^2=C^2 Bx2+By2+Bz2=C2
   C 为常数.
   根据椭圆校正原理, 对短时间内采集的Bx,By 进行磁干扰校正,得出排除磁干扰的Bxm 和Bym:
在这里插入图片描述
   Bxm 和Bym 为x 轴和y 轴排除磁干扰后的磁场强度。

三、结束

   论文的主要算法部分就是这些,也比较好理解,作者也给出了计算的步骤以及详细的公式,在复现上应该是比较容易的。论文后面部分就是算法效果的验证了,这部分就不再赘述了。

四、往期回顾

课题学习(一)----静态测量
课题学习(二)----倾角和方位角的动态测量方法(基于磁场的测量系统)
课题学习(三)----倾角和方位角的动态测量方法(基于陀螺仪的测量系统)
课题学习(四)----四元数解法
课题学习(五)----阅读论文《抗差自适应滤波的导向钻具动态姿态测量方法》
课题学习(六)----安装误差校准、实验方法
课题学习(七)----粘滑运动的动态算法
课题学习(八)----卡尔曼滤波动态求解倾角、方位角
课题学习(九)----阅读《导向钻井工具姿态动态测量的自适应滤波方法》论文笔记

这篇关于课题学习(十)----阅读《基于数据融合的近钻头井眼轨迹参数动态测量方法》论文笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/341058

相关文章

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL