历史上的今天

今天是:2024年10月18日(星期五)

正在发生

2021年10月18日 | 序列预测算法降低钻井测量时间与风险

发布者:石头12345 来源: eefocus关键字:钻井  测量时间 手机看文章 扫描二维码
随时随地手机看文章

为了优化钻井流程并降低作业成本,Baker Hughes的动力学与遥测(Dynamics & Telemetry)小组开发了一个序列预测算法,用于在钻井作业期间快速可靠的解码井下数据。这个已集成到公司地面系统的高级解码算法为随钻测量(measurement while drilling,MWD)方法提供了支持。使用MWD时,可以收集宝贵的方位数据和地层数据,以用来优化钻井流程。该系统支持更准确地定位井眼,这可以使钻井作业更具成本效益,并使操作员可以较少的非生产时间(NPT)钻更复杂的井。


工程团队使用一种桌面科学计算软件设计序列预测算法,将其自动转换为C代码,然后部署到属于地面系统一部分的一台实时PC上。在科学计算软件中开发和调试该算法后,工程师通过自动生成所需的C代码来加速实现过程。


此工作流程不再需要用两种语言维护和测试同一个算法,因此缩短了开发流程。更重要的是,此工作流程降低了用手工编写C代码的一种主要风险,即原始科学计算算法和最终设计中实现的C代码之间的差异。使用此工作流程的一大优势是小组在修复缺陷上所花的时间减少了。质量和开发速度的提升使小组坚定了在未来的项目中重用算法和开发流程的打算。


使用马尔可夫链(Markov Chains)进行序列预测

序列预测的一个常见应用是使用以前的数据来预估未来的数据点。序列预测算法在许多行业和许多情形中都会用到,例如基于测量数据的温度曲线外推,或者在与最大似然序列估算器进行数字通信时,从噪声信号中提取有用的信息。序列预测需要一个模型来预测未来数据,如马尔可夫链。使用马尔可夫链建模的系统占用有限的状态数,从而使未来的数据点仅取决于目前的状态而不是以前的状态。

序列预测算法降低钻井测量时间与风险

在图1中,使用马尔可夫链建模的序列预报器具有4个状态。从一个状态转换到另一个状态的可能性用小数表示。例如,从状态1转换为状态2的概率为0.95,而保持在状态1的概率为0.05。在转换时,可能会有一个或多个路径。图1中显示的序列预报器可作为有限的状态机来实现,它的最形象的表达就是格状图。

序列预测算法降低钻井测量时间与风险

图2显示的是一个可能的(预测的)状态序列。虚线箭头表示可能的转换,实线箭头表示实际预测的转换。此图显示可能的序列为[1 2 3 4 4 3 3 1]。请注意,仅显示部分可能的转换来进行说明。与著名的Viterbi算法类似,序列预报器通过基于外部质量标准计算路径度量来拒绝不大可能的序列路径。如果两个或多个路径在一个状态中相交,则累积并比较它们的路径度量值,将最佳路径选为幸存路径。


工程团队在技术计算软件中为序列预测实现马尔可夫链,以提高其地面解码软件的可靠性。


算法开发工作流程

在传统的手工编码工作流程中,会用C代码重写原始科学计算算法和测试框架,并且必须对C代码进行测试和调试。在新的工作流程中,C代码会从技术计算软件中自动生成,从而节约了时间并可防止编码错误(图3)。

序列预测算法降低钻井测量时间与风险

图3.传统的手工编码工作流程(左)和新的自动代码生成工作流程(右)

在一个典型的情景中,自动代码生成工作流程可将开发和测试最终产品中实现的算法的总时间缩短近40%(图4)。

序列预测算法降低钻井测量时间与风险

图4.各个流程阶段花费时间百分比

对于这个特定的项目,新的工作流程的开始是工程团队在科学计算软件中快速探索新创意。在确定最佳方法后,他们使用同一款软件来建立一个通用序列估算算法的原型。然后进一步扩展该算法,以用于MWD系统的地面PC上。在进行到下一个阶段之前,工程部门使用已纳入同一软件中的测试框架内的多种测试案例来测试算法,以验证它是否符合要求和规范。


通过自动代码生成来实现

传统手工编码流程的许多缺点迫使工程团队去寻找一种替代流程来开发序列预测算法。首先,手工编码非常耗时,并且在紧张的截止日期临近时,为了留出时间给重要而又耗时的集成测试,团队需要将开发时间缩短大约30%。其次,程序员可能会在原始科学计算算法细节上出现解读错误,从而将缺陷引入手写的C代码,造成需要额外的时间来进行调试和修复。


在新的工作流程中,通过自动代码生成可以消除这些缺点。在科学计算软件中,工程师们的工作侧重于在较高层次上开发和微调算法,不用过多地困在较低层次的实现细节上。然后,该团队只需一键点击就可以从原始设计自动生成C代码。由于该流程是自动执行的,因此在将算法转换为C代码时不会出现解析错误的情况。为了生成代码,需要花些时间来微调原始科学计算算法,但这属于一次性任务,如果在开发设计的开始阶段就考虑到代码生成,则可以进一步简化这项任务。


维护和测试算法

在传统的工作流程中,在开发后期对需求进行更改会影响原始设计及其实现。对算法的更新必须反映在C代码中,使用两种语言和环境维护并测试同一个算法及测试框架的成本会迅速成为阻碍因素。在开发周期的后期发现缺陷时,开发人员需要更新该算法的原始科学计算代码和C代码版本两者,还需要创建两套测试方案来验证缺陷是否已经解决。当然,还存在两个代码库产生差异的风险。时间限制经常会促使团队仅更新C代码。出现这种情况时,团队会再次受困于用C代码手工编码的所有缺陷,直到两个代码库一致。


使用自动代码生成,工程团队则可避免这些潜在的错误。当需求发生变化时,工程师只需要更新原始科学计算代码,然后重新生成C代码,将新变化反映到实现中。具体来说,团队无需对生成的C代码进行任何更改,因为在重新生成代码时这些更改会被覆盖。此外,工程团队也不再需要开发第二个测试框架,因此节约了额外的时间。用于测试科学计算代码的原始测试框架可以重用来测试C代码。


将算法集成到地面系统

C代码单元测试一结束,团队便将C代码编译到一个动态链接库(DLL)。然后,将DLL集成到地面解码软件。最后,小组在公司的基于C代码的测试基础架构中执行整个地面解码算法的系统测试。


在测试期间如果发现缺陷,小组发现很容易查明错误的源头。由于工程师将序列预测算法隔离到一个DLL中,因此很容易确定缺陷是集成问题的结果还是算法本身所导致。此外,C代码会映射回原始科学计算代码,并为您提供了在C代码中嵌入技术计算代码作为备注的选项,进一步加强了原始科学计算算法与最终实现之间的可追溯性。


结果

● 缺陷数量减少:该项目计划分配了三周时间来修复十个缺陷,而在生成的C代码中仅找到四个缺陷。因此,团队能够将多出的时间分配给项目的其他环节,例如整个地面系统的系统测试。

● 修复缺陷所需的时间缩短:由于整个功能测试框架在科学计算软件中可用,因此与传统的手工编码相比,团队能够更快地找到缺陷并予以解决。科学计算软件中提供的分析和调试工具加速了此流程。这些工具中有许多也用于测试和调试C代码。

● 代码和流程可以在未来的项目中重用:序列预测算法可以在未来的项目中重用。该算法可以以现有的形式随时现用,也可以在通过代码生成采用C代码重新实现之前,在科学计算软件中进行快速更新以用于其他应用情形。


结论

通过使用自动代码生成,工程师成功采用了一种新的工作流程。这种流程可以避免耗时且容易出问题的手工编码。地面解码软件(包括序列预测算法)接近最终版。在项目上实现的时间和成本节约使公司可以探索更多的机会,将自动代码生成工作流程应用到广泛的未来项目中。

关键字:钻井  测量时间 引用地址:序列预测算法降低钻井测量时间与风险

上一篇:提高电力系统稳定性主要从哪两方面着手
下一篇:丹佛斯的FC302变频驱动器的性能及应用研究

推荐阅读

16日,中国消费者协会公布了2018年第三季度全国消协组织受理投诉情况。据统计,2018年第三季度全国消协组织共受理消费者投诉198775件,解决143118件,投诉解决率72%。  根据投诉性质分析,在所有投诉问题中,售后服务投诉58189件,占总问题的29.27%,质量投诉50704件,占投诉总量的25.51%,合同投诉40939件,占比20.60%,虚假宣传投诉15954件,占比8.03%...
非常简单的一个程序,在F5529的开发板上用按键的IO中断控制LED的亮灭:#include int main(void){ WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1DIR |= BIT0; //将LED1对应的IO口P1.0设置为输出 P1OUT &= ~BIT0; //初始化该灯设置为灭 P1DIR &= ~BIT7; //将按键1对应的IO口P1.7设置为输入 P1IFG &= ...
10月16日早间消息,据DigiTimes报道,由于苹果采取了更加实惠的定价策略,到今年年底,iPhone 12的出货量将达到8000万部。报道称,更快的A14处理器,改进的产品设计和相机功能等技术更新,有望为iPhone带来新一轮的销售增长。到2020年底,包括‌iPhone 12‌,‌iPhone 12‌ mini,iPhone 12 Pro和‌iPhone 12 Pro‌ Max在内的新iPhone系列的出货...
广告摘要声明广告撰文 | 潘敏瑶继越疆科技重磅发布CR3L、CR7、CR12三款协作机械臂新品,并对柔性安全皮肤进行新升级的4天后,越疆科技开启了首个云上新品发布。10月15日,越疆科技围绕“无限延伸,触手可及”的主题向全球用户展示了其人机交互技术的新突破——遥操作系统。从“元宇宙”说起近年来,“元宇宙Metaverse”这一概念在科技行业被广泛热议。越...

史海拾趣

问答坊 | AI 解惑

寻求高手

有个单子要交,需要用到单片机,高薪寻求高手合作。有意请加QQ:85288499,请注明:单片机…

查看全部问答∨

verilog英文版教材

verilog英文版教材 …

查看全部问答∨

逆变电源

一款简单的逆变电路…

查看全部问答∨

多功能数码手套

这是专为I玩转T数码产品而设计的手套,这个皮手套在拇指、食指和中指上有特别设计。 拇指的指套是用魔术贴横向粘住的,当需要操作闹钟,不,手机等设备时,可以撕开,露出拇指,方便操作。食指的指套上就只是多了一层防滑皮 中指上则有一个小钮, ...…

查看全部问答∨

问个比较弱的问题~

没有GUI的根文件系统,能不能使用中文?如果能怎么加?…

查看全部问答∨

我有一个WINDOWS MOBILE的PDA,用的三星CPU,有高手能把这个系统改成WINCE.NET么?当然是要付费的,价钱商量.

我有一个WINDOWS MOBILE的PDA,用的三星CPU,有高手能把这个系统改成WINCE.NET么?当然是要付费的,价钱商量. 联系我QQ:86163938  MSN:myfm3a@hotmail.com 急…

查看全部问答∨

DirectDraw和DirectShow如何协调,正十分迷茫中

我开发一个游戏,采取独占模式,想在DIRECTDRAWSURFACE表面开辟一块区域用于播放视频,现在是没有办法看见视频播放的画面, 但是如果我把DirectDraw相关的代码去掉,只保留播放视频的代码,视频是能够正常播放的。另外请教高手知道如何使用MediaPl ...…

查看全部问答∨

变频恒压供水的基本知识

一、变频恒压供水的特点1. 节能,可以实现节电20%-40%,能实现绿色用电。2. 占地面积小,投入少,效率高。3. 配置灵活,自动化程度高,功能齐全,灵活可靠。4. 运行合理,由于是软起和软停,不但可以消除水锤效应,而且电机轴 ...…

查看全部问答∨

购买或者黑金FPGA开发板换购ARM开发板,野火,神舟均可,多退少补。

本帖最后由 ddllxxrr 于 2016-1-7 16:56 编辑 我的FPGA板子是今年4月份在黑金官方淘宝店买的 RMB399 换购野火开发板或者神舟开发板。 不愿换购的话。 RMB 270 收野火(+液晶+jlink) RMB 200收神舟(+液晶+jlink) 可以的话 加QQ 41110180 ...…

查看全部问答∨

MSP430G2开发板 ,LaunchPad实验板 元件 学习 TPS77301DGK品牌TI封装MSOP8

MSP430G2开发板 ,LaunchPad实验板 元件 学习 TPS77301DGK品牌TI封装MSOP8 大概:TPS77301DGK升降压稳压管复位IC供应小结 1.5-- 5.5v 常用的电源电压监督员(中职),或重置输出电压。 可能相关 :当前级接上高阻抗的后级它主要提供适切的输出电压 ...…

查看全部问答∨
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved