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

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

一、 引言

   该论文针对三轴加速度计、磁通门和速率陀螺随钻测量系统,建立了基于四元数井眼轨迹参数测量模型,并依据状态方程和量测方程,应用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

相关文章

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Python动态处理文件编码的完整指南

《Python动态处理文件编码的完整指南》在Python文件处理的高级应用中,我们经常会遇到需要动态处理文件编码的场景,本文将深入探讨Python中动态处理文件编码的技术,有需要的小伙伴可以了解下... 目录引言一、理解python的文件编码体系1.1 Python的IO层次结构1.2 编码问题的常见场景二

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建