钻井建模与仿真
钻柱动态数据的实时分析对于优化地面钻井参数和减少振动相关问题是必要的。然而,在获取遥测系统产生的高频井下数据时存在一些复杂性。由于振动模态的复杂性,钻柱模型的推导也是一个挑战。
观看Simscape™和Simulink中钻柱和底部钻具组合(BHA)的演示金宝app®.您将看到(a)与顶部驱动相关的钻柱系统的扭转和粘滑动力学模型,以及(b) BHA的旋转运动和粘滑动力学模型。由于Simscape库中的多个预构建块(如Flexible Beam和Spatial Contact Force),建模大大简化和加速。
一旦获得了基于物理的钻井模型,你可以看到它被用来激发扭转振动,你可以研究响应。该模型为创建数字双胞胎和开发控制策略或预测性维护研究的未来工作流程奠定了基础。
你好。我叫尼奥·金。我是MathWorks的应用工程师。今天我们将通过在Simscape环境下在Simulink下构建的多个演示来讨论使用Simulink对钻井系统建模。金宝app
在加入MathWorks之前,我在哈里伯顿工作了三年。一半人在企业创新团队,一半人在sperry钻井。我在那里的大部分工作都是为控制系统设计建立基于物理的模型。
我要给你们看的演示——这些都是我花了三年时间制作的。构建大量自定义代码是非常困难的,但是当我转到MathWorks时,我发现许多有用的工具可以用来节省数百个小时和大量的金钱。所以我想在这次演讲中与你们分享我的经验。
如你所见,我们使用的工具是——基础是MATLAB和Simulink。金宝appSimscape就是在这个基础上,有多个工具箱。今天我们可能会更多地关注多体,但我会在讲座结束时给你们一些参考资料。好吗?
这就是今天的议程。我们将从钻柱的例子开始。然后我们将讨论在MathWorks工具链中基于物理的建模,为什么我们要建模,然后我们如何使用这些模型。然后我会做一个关于如何将现有CAD模型导入Simulink的演示。金宝app然后我们将讨论在Simscape Multibody中可以使用的一些有趣的块。使用这些块,我制作了另一个带有井底钻具组合振动示例的演示。然后,我们将讨论如何将基于物理的模型更新为代表真实系统的数字孪生模型,以便更好地使用。然后我们会用一些我们能找到的资源来结束这次演讲。好吗?
让我们转到MATLAB。我用的是一个项目。你可能不知道这是什么。这叫做MATLAB项目。它可以被称为Simulink项目。金宝app它包含了你做某些项目所需要的所有文件。你可以看到,有不同类型的文件,比如STEP文件。这些是设计和M文件,并获取这些型号的信息。然后是slx文件,这是Simulink文件。金宝app
基本上,当我打开这个项目时,它会运行运行模拟所需的这些参数。因为在工作空间中,已经加载了参数。我只要点击这个,或者把模型放上去。在这一边,你可以看到模型,还有一些刻度盘和指示器。这只是个开始,然后看看我们能看到什么。现在,我通过点击一个按钮运行了150秒的模拟。它将打开机制资源管理器以显示动画。
所以你在左上方看到的,这是井底钻具组合,和钻头一侧。这是顶部驱动面。这是底部的底部钻具组合。这是顶盘的俯视图。所以你可以看到,发生了一些事情。B边旋转,然后停止,旋转,然后停止。然后顶部驱动以相同的转速持续旋转。在钻井行业,这被称为粘滑行为。虽然这些管子有7英寸外径,但都是钢管。但是当整个系统的长度越来越长时,你可以把它想象成一根电线。 So whenever the force or torque-- demanding torque-- is increasing very far away from the power source, then you can see the twisting effect of entire structure when it increase the elastic energy, and then release it. That's why, you can see over here in this measurement, the top drive speed is constant, but the instrument RPM is actually fluctuate-- stop, and then it actually three times. Then top drive speed, and they come down and stop. This is one of the serious dynamics where drilling industry wants to solve. OK?
我们来简单介绍一下这个模型。你可以看到有子系统,然后是特殊的块。你可以看到,这些黑线是Simulink。金宝app这条灰色线是Simscape多体域。让我们进入顶层驱动器。有两个子系统。我只是注释掉了。现在,我正在使用顶部驱动器的简化版本,因此它只是接受RPM,这是速率限制器,然后我们将其集成到理想的关节中,以旋转[AUDIO OUT]驱动器侧。
或者我们可以做一个更复杂的交流驱动器模型。你可以看到不同颜色的线条。这是电气——Simscape电气——然后这条绿线是Simscape机械。在这两个域之间有一个PMSM驱动器。这是一种更复杂的设计方法。您可以想象,任何子系统都可以扩展到不同的域。
在这里,我给你们展示的是,所有基于simulink的计算你们展示的是粘滑行为。金宝app有一些区域我们需要考虑动力学——有静态的,然后是过渡,然后是动力学的。所以它可以看到,这个开关正在改变情况。还有,那边有一些标志。
基本上,这个计算就是在这种情况下求出摩擦力。然后乘以法向力。所以作用在钻头上的力,在这里,是作用在坑边的法向力。我还在这里添加了一些使用信号编辑器的信息,这实际上是在下一个版本的信号构建器中。使用这个工具,您可以简单地通过添加点来制作一些信号。然后它就可以运行了。你可以创建多个不同的场景。
所以我只是把控制值加起来——钻头控制值上的重量——和一些情况,然后把法向力乘以摩擦力,这是转矩需求。这就是粘滑发生的地方。所以你可以想象,有太多的法向力而不是粘滑发生。然后整个系统会像这样波动。
让我重新运行这个模拟,然后看看我们可以用这个控制器做什么。为了实时,你可以改变这个模拟。那么,粘滑是从哪里开始的呢?在油田中,钻井人员只需提高10%的速度,然后看看他们是否能摆脱粘滑。如果这不起作用,他们就会多做10%。但还是没用,然后他们就会减小比特的权重以离开这个区域。
所以你可以看到,这是非常不科学的摆脱这种动态的方法。通过使用模拟器,我们可以了解它们的行为,然后找到更好的策略。然后,一旦我们确认这个模型实际上反映了真实的系统,我们就可以用这个计划模型来构建控制器。这就是整个想法。
让我们回到幻灯片上,稍微讲一下基于物理的建模。MathWorks工具链——你可以用不同的方法构建一个基于物理的模型。所以用符号方程的方式,然后用偏微分方程的脚本或函数工具箱。这是我过去常待的地方。
有不同的方法。仿真软件。金宝app您已经看到,粘滑行为可以用Simulink块来计算,或者您可以将它放到Simscape块中,它实际上代表了真实的系统。金宝app你不需要从头开始构建,比如偏微分方程,或者任何逻辑。
那么我们可以在哪里使用这些模型呢?首先,我们可以做——一旦我们建立了这个基于物理的建模,我们可以确认,或者验证,或者验证每个组件,然后把它们连接在一起,看看我们是否可以在设计阶段运行这个系统。或者,使用这个计划模型,我们可以使用传统的控制系统设计工具箱或强化学习来进行控制系统设计。这些天,那里有很多管道。强化学习需要健壮的计划模型,该模型可以在Simulink和Simscape中构建。金宝app或者我们可以做预测性维护——探索其他领域,我们可以改变一些组件,看看我们可以得到什么样的数据,然后对损害进行分类。或者进一步,我们可以使用这个模型来估计剩余的使用寿命,使用RUL计算。
在很多案例中,我们已经设计了一些系统。或者我们试图与新系统集成的系统,已经有不同供应商生产的系统。例如,如果你考虑钻机系统,不是只有一家公司可以建造整个系统。有多家供应商,多家公司合作,共同打造整个系统。所以如果你想测试你自己的系统,你不能只依赖于现场数据集。你想知道物理分数将如何影响你的系统。在这种情况下,你可以带一些CAD模型,然后把它们带到Simulink环境中。金宝app
让我给你们看一些例子。这是SOLIDWORKS模型。我没有专门针对钻井行业的钻井平台。但我只带了这辆四缸的。所以你可以看到,有一定程度的自由度。有组件或部件。这些被定义为配偶。你可以看到,下面这个块是固定的,加上这个F,表示在全局坐标系中是固定的。其他的都在上面。这两个部分之间有关系。
所以我们提供了一些插件——你可以使用的免费软件。这是MATLAB文档。你看这里,我们有Autodesk Inventor、Claro、Parametric和SOLIDWORKS的插件。我们有了插件的链接。安装这些插件后,您可以在工具下找到Simscape Multibody链接,特别是在SOLIDWORKS中。
一旦导出,我已经做过了。让我再做一次。它要做的就是去到每个单独的部分,然后建立一个STEP文件。然后,它还会生成xml文件,其中包含了各个部分之间的所有信息。这个xml文件就是我们将在MATLAB中使用的,并将模型引入Simulink环境中。金宝app
让我们等一会儿,然后就完事了。我们可以到这里。
好的。有几个限制是不支持的——这就是配偶的定义和Simulink的区别。金宝app金宝app所以有一些,比如,偏移设计——那些不是真正的或者是Simulink中的一些联合元素。金宝app这些可以被自动忽略。
我们将要使用的函数是smimport。这里有一个xml文件。只要运行它,或者把所有的子系统,部件,自动地连接在一起。基本上,这是与SOLIDWORKS模型相当的系统。如果我现在运行。点击按钮,我没有任何执行器。
只是改变了几个点,然后这里。所以S金宝appimulink环境并不是针对这种详细的设计,而是我们在做这种仿真,并做出仿真环境。这个曲轴这样运动的原因是因为我们已经设置好了——整个环境——有重力。如果我们观察这个结构,你会发现重力是y方向为负的。所以在这里,坐标系中,y是向上的,重力是向下的。这就是曲轴在重力作用下运动的原因。
让我们在这个圆柱体中添加一个非常简单的驱动器。这个圆柱体叫做3,你可以点击这里找到,这个圆柱体。然后我们想看看,如果我们在Simulink中加入一些力,这里会发生什么。金宝app只是驱动,我们输入提供输入,然后我们试着让运动,或者让它计算。然后它会打开一些端口——这是一个物理信号端口。所以当我们尝试输入一些信号时,我们需要在Simulink和物理信号之间有一些收敛。金宝app这个,然后,因为这是第4个柱面,所以我们把它定义为正弦波。
振幅1太小了,可能是10。然后让它有一个实际的值。如果你运行这个系统,现在它在运动,但它不是高正确的力或频率。所以你们已经知道了实验设计可以通过改变这两个参数来实现。这样我们就能找到正确运行这个模拟所需的力和频率的值。
这是一个非常酷的工具,因此您不必从头开始构建整个系统。你可以想象这里有多少圆柱形关节,或者移动关节,如果你想把所有东西都做起来,会花很多时间。但是正如您所看到的,所有这些STEP文件都是从生成SOLIDWORKS的文件中导入的,所以您可以直接使用它。
关闭这个。新幻灯片。
我想介绍几个有趣的Simscape多体模块。一个是柔性梁单元,另一个是特殊接触力。也许你们还记得粘滑钻柱的例子,我用这个一般的柔性梁。让我回顾一下。我用这里的块,当我们试图建立这种柔性动力学时,我们必须使用刚体慢元,然后做整体质量建模。但在这里,这一块实际上是在帮助我们构建整个系统。现在,你在这里看到的是914米,相当于3000英尺。您可以只构建一个块来表示这个长系统。刚度和惯性你可以在这里定义,就像你看到的。密度和杨氏模量代表钢结构。 And then you can just update it. You can get all those calculated values for rigidity or the momentum. It does show automatically.
如果你想更好地估计弯曲或扭转元素,你实际上可以增加元素的数量。现在我有10个。显然,如果你增加这个元素,那么模拟的时间会稍微慢一点,因为我们需要计算更多的计算。但尽管如此,这比你想象用质量模型建立整个系统要容易得多,用大量的稀疏矩阵来计算刚度,阻尼和质量。
我想给你们看的另一个是这里的一个新方块。这是一个非常有趣的街区。所以渗透是建立这种动力的问题。如你所见,这个块实际上,我们可以定义刚度和阻尼的法向力。这个块实际上使用了简单的力方程,所以当穿透发生时,它们会按比例增加刚度,然后使斥力摆脱那些相互勾结的原因。
你还可以定义这两个元素之间的摩擦力。在钻柱的例子中,粘滑摩擦可以通过这一块来改变。这实际上为我们研究井下发生的事情提供了一个巨大的机会。通常,我们不知道发生了什么。因为我们的遥测系统频率非常非常低,发生的一切只是想象。但如果我们能建立任何模型来表示这些物理现象,我们就能看到发生了什么。
在这里。这是另一个可以模拟BHA振动的模型。所以你可以看到,有多个子系统,这些代表每个单独的字符串。我们有一个底部钻具组合,那里还有5根管子。在那里,我们在管道和油井上的钻头之间有接触力块。我来运行一下。然后调用参数就容易多了。
为了解释这个模型的作用,再次,它打开了力学探索者,展示了这个钻杆,我是怎么设计的,底部钻具组合的部分有点厚。然后管边变薄,因为钻的井总是一样的,跟着钻头的外径走。所以BHA通常有较窄的间隙,然后管道有较大的间隙。当粘滑发生时,你可以看到,有非常不规则的振动发生。所以当我们没有粘滑的时候,这种振动就永远不会发生。但是由于粘滑,这种振动实际上可以摧毁整个价值数百万美元的井底组件。
事实上,我没有停在这里。我在底部钻具组合中添加了一些组件。因此,矩形或立方元素实际上代表了IMU,即BHA中的初始测量单位。我放置了两个imu,一个靠近较粗的管道,另一个是较细的管道。然后我们可以测量动力学通过使用这个三轴惯性测量单元块在我们可以使用的航天块中。所以我们可以把这些信息带入。这实际上产生了这个信号。
所以你在这里看到的——左手边——只是旋转。中间的是呼气。右边的是角速度。所以基本上,这意味着你可以重新生成井下传感器能看到的东西。利用这些信息,我们将了解井下到底发生了什么。如果我们了解井下系统的动力学,我们就可以建立控制系统来摆脱这种振动情况。
最后是参数估计。所以通常当我们试图建立基于物理的模型时,我们只是使用一些特定数据的参数,这并不能真正反映你的系统。我再举一个例子。因为我们没有任何钻井设备的真实数据集,所以我们只使用电机驱动的例子。
这里是图的状态。你看这里,有一个可控电压源,一个H桥,然后是直流电机。而直流电动机——当你试图制作这个基于物理的模型时,你不知道确切的参数,例如电枢电阻或电感,或反电动势常数,或机械部件,如惯性阻尼。所以我们能做的就是使用参数估计工具来估计真实值。如果我用默认值运行一次,如你所见,这是输入信号,这是电机输出轴速度。你可以看到黄线是模拟theta,然后[AUDIO OUT]从字段中收集。所以这两者之间有很多差异。
该参数估计工具可以帮助优化参数的取值。我可以按错按钮。这需要一点时间。我刚刚做了这个视频。我们看一下这个。所以基本上,同样的例子和同样的参数估计程序——它实际上是在做优化问题的迭代来解决这个错误——试图最小化模拟和现场数据之间的误差。可以看到,这里已经收敛了,误差变小了。再等几秒钟。
最后,当误差小于阈值时,我们就会停止优化。然后可以找出这些参数。该值通常存储在工作空间中。现在,我没有运行参数估计工具,所以它是默认值。但是一旦你进行参数估计,它就会改变。
今天我们讲了很多例子。它非常快。对于每个单独的演示版本,我们都可以进行更多的讨论。但由于时间限制,我们需要停在这里。但是Simscape并不仅仅局限于一些电子或机械或多体。还有其他领域,比如热液,两相流体,水力学,甚至电磁学。
我们有很多运输的例子。你可以在MATLAB文档中找到答案。如果你真的想学习如何使用Simulink和Simscape为一个更大的项目建立一些基于物理的模型,金宝app我们提供培训课程。甚至,如果你只有很短的时间来完成你的项目,我们还有咨询服务。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。