MATLAB与Visual C混合编程在储层三维建模系统中应用.docVIP

MATLAB与Visual C混合编程在储层三维建模系统中应用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB与Visual C混合编程在储层三维建模系统中应用

MATLAB与Visual C混合编程在储层三维建模系统中应用   摘要:利用 Visual C++与 MATLAB进行混合编程 ,开发了三维储层建模系统。解决了 MATLAB 不能实现端口操作、实时控制和 V isual C++处理复杂数值运算效率低的问题 ,二者功能互补 ,为三维储层建模的复杂计算及计算结果的可视化提供强大的技术支持。MATLAB将河流储层建模系统中计算模块转化成 V isual C++的代码 ,并将代码用 V isual C++编译器编译连接成独立应用程序。 V isual C++编写的可视化交互操作界面对MATLAB 编译后的动态链接库文件进行调用 ,实现复杂计算功能。   关键词:MATLAB;V isual C++;混合编程;储层三维建模   中图分类号:TP306文献标识码:A文章编号:1672-7800(2011)01-0100-02      基金项目:国家自然科学基金项目   作者简介:王家华(1945-),男,上海人,西安石油大学计算机学院教授、硕士生导师,研究方向为图像处理与模式识别;周润(1982-),男,陕西安康人,西安石油大学硕士研究生,研究方向为图像处理与模式识别。1河流相储层建模计算模型与方法    对河流相进行储层建模,我们通常采用自回避随机游走算法,约定游走粒子不允许到达曾经访问过的位置。这样得到的建模结果就不会产生与自身相交,形成闭合环的现象,符合古河流沉积规律,但是所形成的游走路径是二维空间中的一条折线,脱离了地质构造形态本身,对建模结果的认识不够直观。因此我们采用空间插值方法建立三维储层建模,以便观察河流空间分布模式。空间插值常用于将离散点的测量数据转化为连续的数据曲面,本文采用最近邻点插值法对各小层的顶、底面进行建模。最近邻点插值法又称泰森多边形法,它将空间分割成不同的多边形区域,每一区域的属性值使用距它最近位置点的属性值。    三维插值计算实现代码如下:    %编译命令:mcc -W cpplib:libtestgrid -T link:lib testgrid (生成C++的动态库)    %编译命令:mcc -W lib:libtestgrid -T link:lib testgrid (生成C的动态库)    function testgrid(filename,step,bView)    [x,y,top, bottom] = textread(filename, %*s %f %f %*s %*s %f %f %*f);    x=x/1000.0;    y=y/1000.0;    step = step / 1000.0;    mid = (top + bottom)/2;    max_x = max(x)+0.2;    min_x = min(x)-0.2;    xi =(min_x:step:max_x);    max_y = max(y)+0.2;    min_y = min(y)-0.2;    yi=(min_y:step:max_y);    [xx,yy]=meshgrid(xi,yi);    if (bView)    zz_top=griddata(x,y,-top,xx,yy,nearest);    zz_bottom=griddata(x,y,-bottom,xx,yy,nearest);    figure(NumberTitle,off,Name,小层构造模型);    mesh(xx,yy,zz_top),hold on;    mesh(xx,yy,zz_bottom);    plot3(x,y,-bottom,r.), hold off;    xlabel(X(Km));    ylabel(y(Km));    zlabel(z(m));    title(小层构造模型,FontName,隶书,FontSize,20)   2混合编程   2.1实现混合编程的环境配置    要成功地实现混合编程 ,达到混合编程的要求并最终作为独立的应用程序发布 , 首先要对MATLAB 及 V isual C+ + 进行环境的配置。①对 MATLAB 编译环境进行设置:在 MATLAB 环境中运行 mex setup 命令,按屏幕提示选择有关选项,此处选编译器为 Microsoft Visual C/C+ + Version6.0 in C: \\Program Files\\Microsoft Visual Studio,路径按实际路径选择。然后在 MATLAB 环境中运行mbuild setup 命令,设置

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档