《油藏数值模拟隐式差分MATLAB源程序》由会员分享,可在线阅读,更多相关《油藏数值模拟隐式差分MATLAB源程序(7页珍藏版)》请在人人文库网上搜索。

1、隐式求解方法%t为投产后某一时刻,单位:天%d:迭代时间;%Pwf1:W1井底流压;%Q2:W2井产油量;function P,d,Pwf1,Q2=implict(t)%油藏参数Pini=20;u=5e-3;C=2e-4;Q1=30;Pwf2=15;dx=200;dy=200;dt=24;n=t*24/dt;%迭代时间步数re=0.208*dx;rw=0.1;%渗透率K=0 259 222 200 190 180 185 0 0 0 0;259 259 222 200 190 180 185 185 0 0 0;310 310 240 235 228 210 195 195 0 0 0;330。

2、 330 290 270 250 230 205 197.5 180 185 0;350 350 300 280 259 222 200 190 180 185 185;340 340 320 290 310 240 235 228 210 195 195;355 355 335 315 310 290 270 250 230 205 205;0 0 0 0 325 300 280 240 210 215 215;0 0 0 0 340 320 290 260 235 225 225;0 0 0 0 355 335 315 295 275 255 0;%厚度H=K/50; %孔隙度Fai=(K。

3、.*0.02+15)/100;%地层压力P=Pini*ones(10,11);%P(1,:)=0;%P(2:10,1)=0;%P(2:10,11)=0;%P(2:4,8:10)=0;%P(8:10,2:4)=0;%系数矩阵%初始化a=zeros(10,11);b=zeros(10,11);c=zeros(10,11);d=zeros(10,11);e=zeros(10,11);%for i=2:9for j=2:10a(i,j)=3600e-9*dt*2*H(i,j-1)*K(i,j-1)*K(i,j)/u/C/Fai(i,j)/dx/dx/(H(i,j-1)*K(i,j-1)+H(i,j)*。

4、K(i,j);b(i,j)=3600e-9*dt*2*H(i,j+1)*K(i,j+1)*K(i,j)/u/C/Fai(i,j)/dx/dx/(H(i,j+1)*K(i,j+1)+H(i,j)*K(i,j);c(i,j)=3600e-9*dt*2*H(i+1,j)*K(i+1,j)*K(i,j)/u/C/Fai(i,j)/dx/dx/(H(i+1,j)*K(i+1,j)+H(i,j)*K(i,j);d(i,j)=3600e-9*dt*2*H(i-1,j)*K(i-1,j)*K(i,j)/u/C/Fai(i,j)/dx/dx/(H(i-1,j)*K(i-1,j)+H(i,j)*K(i,j);e(。

5、i,j)=-1-a(i,j)-b(i,j)-c(i,j)-d(i,j);endend%初始时刻地层压力p=Pini*ones(52,1);%系数矩阵AA=zeros(52);%第9行A(1,1)=e(9,6);A(1,2)=b(9,6);A(1,6)=d(9,6);for i=2:4A(i,i-1)=a(9,i+5);A(i,i)=e(9,i+5);A(i,i+1)=b(9,i+5);A(i,i+5)=d(9,i+5);endA(5,4)=a(9,10);A(5,5)=e(9,10)+b(9,10);A(5,10)=d(9,10);%第8行A(6,1)=c(8,6);A(6,6)=e(8,6)。

6、;A(6,7)=b(8,6);A(6,12)=d(8,6);for i=7:9A(i,i-5)=c(8,i);A(i,i-1)=a(8,i);A(i,i)=e(8,i);A(i,i+1)=b(8,i);A(i,i+6)=d(8,i);endA(10,5)=c(8,10);A(10,9)=a(8,10);A(10,10)=e(8,10)+b(8,10);A(10,16)=d(8,10);%第7行A(11,11)=e(7,5);A(11,12)=b(7,5);A(11,20)=d(7,5);for i=12:15A(i,i-6)=c(7,i-6);A(i,i-1)=a(7,i-6);A(i,i)=。

7、e(7,i-6);A(i,i+1)=b(7,i-6);A(i,i+9)=d(7,i-6);endA(16,10)=c(7,10);A(16,15)=a(7,10);A(16,16)=e(7,10)+b(7,10);A(16,25)=d(7,10);%第6行A(17,17)=e(6,2)+a(6,2);A(17,18)=b(6,2);A(17,26)=d(6,2);for i=18:19A(i,i-1)=a(6,i-15);A(i,i)=e(6,i-15);A(i,i+1)=b(6,i-15);A(i,i+9)=d(6,i-15);endfor i=20:23A(i,i-9)=c(6,i-15)。

8、;A(i,i-1)=a(6,i-15);A(i,i)=e(6,i-15);A(i,i+1)=b(6,i-15);A(i,i+9)=d(6,i-15);end%w2井定井底流压生产A(24,15)=c(6,9);A(24,23)=a(6,9);A(24,24)=e(6,9)-(3600e-9)*2*pi*K(6,9)*dt/u/C/Fai(6,9)/dx/dy/log(re/rw);A(24,25)=b(6,9);A(24,33)=d(6,9);A(25,16)=c(6,10);A(25,24)=a(6,10);A(25,25)=e(6,10)+b(6,10);A(25,34)=d(6,10);。

9、%第5行A(26,17)=c(5,2);A(26,26)=e(5,2)+a(5,2);A(26,27)=b(5,2);A(26,35)=d(5,2);for i=27:31A(i,i-9)=c(5,i-24);A(i,i-1)=a(5,i-24);A(i,i)=e(5,i-24);A(i,i+1)=b(5,i-24);A(i,i+9)=d(5,i-24);endfor i=32:33A(i,i-9)=c(5,i-24);A(i,i-1)=a(5,i-24);A(i,i)=e(5,i-24)+d(5,i-24);A(i,i+1)=b(5,i-24);endA(34,25)=c(5,10);A(3。

10、4,33)=a(5,10);A(34,34)=e(5,10)+b(5,10)+d(5,10);%第4行A(35,26)=c(4,2);A(35,35)=e(4,2)+a(4,2);A(35,36)=b(4,2);A(35,41)=d(4,2);for i=36:39A(i,i-9)=c(4,i-33);A(i,i-1)=a(4,i-33);A(i,i)=e(4,i-33);A(i,i+1)=b(4,i-33);A(i,i+6)=d(4,i-33); endA(40,31)=c(4,7);A(40,39)=a(4,7);A(40,40)=e(4,7)+b(4,7);A(40,46)=d(4,7)。

11、;%第3行A(41,35)=c(3,2);A(41,41)=e(3,2)+a(3,2);A(41,42)=b(3,2);A(41,47)=d(3,2);for i=42:45 A(i,i-6)=c(3,i-39);A(i,i-1)=a(3,i-39);A(i,i)=e(3,i-39);A(i,i+1)=b(3,i-39);A(i,i+6)=d(3,i-39); endA(46,40)=c(3,7);A(46,45)=a(3,7);A(46,46)=e(3,7)+b(3,7);A(46,52)=d(3,7);%第2行A(47,41)=c(2,2);A(47,47)=e(2,2)+a(2,2)+d。

12、(2,2);A(47,48)=b(2,2);for i=48:51A(i,i-6)=c(2,i-45);A(i,i-1)=a(2,i-45);A(i,i)=e(2,i-45)+d(2,i-45);A(i,i+1)=b(2,i-45);endA(52,46)=c(2,7);A(52,51)=a(2,7);A(52,52)=e(2,7)+b(2,7)+d(2,7);% 循环次数 tntn=0;while(tnn)%右端项BB=-p;%第9行B(1)=B(1)-c(9,6)*Pini-a(9,6)*Pini;for i=2:5B(i)=B(i)-c(9,i+5)*Pini;end%第8行B(6)=B。

13、(6)-a(8,6)*Pini;%第7行B(11)=B(11)-c(7,5)*Pini-a(7,5)*Pini;%第6行for i=17:19B(i)=B(i)-c(6,i-15)*Pini;end%w2井定井底流压生产B(24)=B(24)-(3600e-9)*2*pi*K(6,9)*dt/u/C/Fai(6,9)/dx/dy/log(re/rw)*Pwf2;%W1井定产生产B(44)=B(44)+dt*Q1/24/C/Fai(3,5)/H(3,5)/dx/dy; %计算未知量压力p1p1=AB;%稳定条件 压力变化最大值小于0.000001if max(abs(p1-p)0.000001b。

14、reak;endp=p1;tn=tn+1;end%将迭代时间换算为天d=tn*dt/24;%将计算出的压力写入地层压力PP(9,6:10)=p(1:5);P(8,6:10)=p(6:10);P(7,5:10)=p(11:16);P(6,2:10)=p(17:25);P(5,2:10)=p(26:34);P(4,2:7)=p(35:40);P(3,2:7)=p(41:46);P(2,2:7)=p(47:52);%计算W1井底流压。由产量公式:Q=2KH(P-P_wf )/(ln (re/rw) )得:W1井底流压:Pwf1=P1-Q1ln (re/rw)/2KH Pwf1=P(3,5)-Q1*u*log(re/rw)/(2*pi*K(3,5)*H(3,5)/86400*1e9;%W2井产油量:Q2=2KH(P2-Pwf2 )/(ln(re/rw) )Q2=2*pi*K(6,9)*H(6,9)*(P(6,9)-Pwf2 )/(u*log(re/rw)*1e-9*86400;。

隐式差分matlab程序,油藏数值模拟隐式差分MATLAB源程序相关推荐

  1. 线性最小二乘法拟合 matlab程序,曲线拟合的线性最小二乘法及其MATLAB程序

    1 曲线拟合的线性最小二乘法及其MATLAB 程序 例7.2.1 给出一组数据点),(i i y x 列入表7–2中,试用线性最小二乘法求拟合曲线,并用(7.2),(7.3)和(7.4)式估计其误差, ...

  2. matlab程序设计基础教程 刘国良,MATLAB程序设计基础教程 刘国良 西安电子科技大学出版社...

    商品描述: [图书描述]: 本书以MATLABR2010a为基础,较全面.系统地介绍了MATLAB的理论和应用,内容包括MArLAB的基本知识和基本程序设计.数值分析.科学计算.符号运算和图形绘制等. ...

  3. 离子注入的matlab程序,等离子体离子注入pic仿真的matlab实现picnumericalsimulation.pdf...

    等离子体离子注入pic仿真的matlab实现picnumericalsimulation 等离子体离子注入PIC 仿真的MATLAB 实现 * 裴宪军, 巩春志, 汪志健, 田修波, 杨士勤 ( 哈尔 ...

  4. 心电图数据读取matlab程序,心电信号的提取及matlab编程.doc

    MIT-BIH ECG 信号的数据读取方法和Matlab程序 收藏 ? ? 最近在写一篇基于小波变换的ECG信号压缩算法的论文,遇到了怎样获取ECG信号测试数据的问题,在百度和专业论坛里搜索了一番,发 ...

  5. matlab程序结构分为哪三种,matlab程序结构

    如何优化程序? 一言以蔽之:全部使用函数! 如何优化文件? 一言以蔽之:做成工具箱! 今天师姐要我上次matlab做的后处理文件,当时是用脚本写的,根本没用心修改过.洋洋洒洒500多行,现在看起来都头 ...

  6. 数模-化验结果判别及matlab程序,数模-化验结果判别及matlab程序.doc

    地贫患者的基因筛查问题 摘 要 地中海贫血(简称"地贫")是全球广为流行.危害极为严重的遗传性溶血性疾病,全世界至少有3.45亿人携带地中海贫血的致病基因.医学上通过大人群的基因筛 ...

  7. matlab程序改为m文件名,在MATLAB中,程序文件的扩展名为.m,所以程序文件也称为M文件...

    在MATLAB中,程序文件的扩展名为.m,所以程序文件也称为M文件 答:√ 磷酸果糖激酶-2催化6-磷酸果糖生成的产物是 答:2,6-二磷酸果糖 <人类行为的经济学分析>的作者是( ). ...

  8. matlab程序里nbus=x的意思,MATLAB潮流程序(IEEE14 直角坐标 牛拉法)

    MATLAB潮流程序(IEEE14 直角坐标牛拉法)clear baseMVA=100; %功率基值 %%读Data1中数据 load Data1.txt Bus=Data1(:,1); %节点号 V ...

  9. 2dpca matlab程序,[转载]人脸识别-2dpca之Matlab程序

    本程序采用2级PCA提取特征,最小藕欧距离分类器进行人脸识别,实验数据为orl人脸库. 本文作为我从事模式识别研究的开始,留下此代码作为见证. 由于Matlab软件是初次使用,很多函数还不是很熟识,所 ...

  10. 算术编码 matlab程序,实验二算术编码及MATLAB实现.doc

    实验二算术编码及MATLAB实现 武夷学院实验报告 课程名称: 多媒体通信技术 项目名称: 算术编码及MATLAB实现 姓名: _专业:__通信工程___ 班级: 学号:____同组成员_无_ 实验准 ...

最新文章

  1. 半吊子菜鸟学Web开发 -- PHP学习 4 --异常
  2. python使用笔记:xlrd和xlwt库的使用
  3. 强制解除占用端口,最快速方便的解除占用端口,端口占用解决方案大全
  4. LaTeX 科技排版 课程
  5. eShopOnContainers 看微服务③:Identity Service
  6. Codeforces Round #603 (Div. 2) E. Editor 线段树维护括号序列
  7. 【学习笔记】平等博弈及常见的公平博弈类型
  8. 秒懂云通信:通信圈黑话大盘点
  9. Think in AngularJS :对比 jQuery 和 AngularJS 的不同思维模式
  10. c语言main的性质,关于main()
  11. java 同步块_java 同步块(Java Synchronized Blocks)
  12. Navicat连接MySQL8.0版本时出现Client does not support authentication protocol requested by server;报错的问题解决办法
  13. 将对象绑定到WinForm中的combobox时出现的奇怪错误:组合框的下拉项太多!
  14. vscode在vue页面中书写代码没有提示!怎么破?
  15. allegro设置规则
  16. PPT 宏 macro图片crop
  17. 2019仿互站网源码T5友价内核PC+社区+博客+手机+整站数据 全新运营
  18. vscode创建工作区及生成html模板
  19. 如何专业查看视频/音频/图片信息
  20. 提高电脑性能增加fps的方法

热门文章

  1. 走一条硬件工程师的道路
  2. HTML 学习笔记一
  3. Redhat linux 5 Server相关介绍
  4. 迷你博客突然走红 至今尚无商业模式
  5. 设计模式实现一个简单的缓存
  6. 全国医疗机构勒索病毒事件公告:阿里云发布公益行动
  7. 以Graphicslayer为管理组来管理Element.
  8. Linux中tshark(wireshark)抓包工具使用方法详解
  9. LINUX占用太多内存的解决方法
  10. PhpED和Zend Studio for Eclipse的Debugger配置