本帖最后由 乔聪颖 于 2020-7-27 11:03 编辑
数模中Schedule部分的自动生产控制属于越嚼越入味的那道高级菜。 近日提出相关需求的客户较多,正好拿出一例,打磨打磨刀锋。
-----------------------------------------
案例描述与分析 问题描述:针对某一口井,当达到一定生产条件时(如产量低于一定值),关井;随后在达到一定天数(如30天)后,自动开井。
分析 通过Action*不难实现自动关/开井,难点在于如何判断天数。在以往的案例中,我们常常单独使用Action*就够了,但是本次必须要加上它的孪生兄弟-UDQ,这也是选中本例分享给大家的原因。
解决方案:ACTION*+UDQ 不难想象,主体结构需要采用嵌套形式的Action*:
外层Action 判断条件 关井 嵌套Action 判断条件 开井 随后,需要通过UDQ来定义时间变量,提取时间差,融入嵌套的Action中。
来看下完整的内容:
思路很简单,内容也不多,容易看懂。
拓展 更新、完善、反思,是一种态度,责任。
当我们回顾/实际运行上述解决方案时,可能会面临一个问题:倘若模型收敛性很好,计算步与报告步步长则会一致,当报告步的步长设置的较大时,可能关井的时间会达到40天、50天甚至更长。
其实可以通过关键字来规避,比如,在两个Action中嵌入DTMAX等于1,即将最大计算步限制在1天以内,误差也就限制在了1天以内。大家可以自行尝试。
参考资料:
《tNavigator-Python API-PythonAction解读》
《tNavigator-PythonAction-自动控制生产动态》
《tNavigator-PythonAction-自动生成裂缝》
《tNavigator-PythonAction-自动改变射孔层位》
End.
本次未动用神器-PythonAction,仅用了Action*+UDQ的方式。若是您有拓展性的需求,可以尝试PythonAction;倘若遇到任何困难,可以联系我们,support@colchispetro.com(请注明基本信息)。
------------------------------------------------
更多tNavigator技巧及应用,欢迎加入tNavigator技术交流QQ群:777385939。
更多石油行业前沿资讯与应用,请关注科吉思石油:
|