欢迎来到天天文库
浏览记录
ID:52168734
大小:170.33 KB
页数:2页
时间:2020-03-23
《C与Matlab混合编程技术在矿山沉降预测中的应用.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第2期矿山测量N22Ol0卑4MINESURVEYING’L2O10doi:10.3969/j.i鹤n.100l一358X.2010-02·016C#与Matlab混合编程技术在矿山沉降预测中的应用罗诗佳’,陈超。,郭文学,张伟航(1.河北理工大学,河北唐山063000;2.河北邯邢矿冶设计院有限公司,河北邯郸056001)摘要:讨论了MaⅡaJ)与C#混合编程在矿山沉降预测中的应用方法。把Maflab的程序加入到C#及其它语言编制的程序中,将大大减少编程的工作量、保证程序的准确性,并且继承C#良好的用户界面。关键词:Matlab;C撑;矿山变形监测;混合编程’中图分类号:
2、m327文献标识码:B文章编号:1001—358X(2010)02—0049—02Maflab是当今世界上使用最为广泛的数值计算为最大曲率;W()为任意点下沉值;i()为任意点软件之~,具有强大的矩阵计算能力,可实现数值分倾斜值;K()为任意点曲率。析、优化、统计、偏微分方程数值解、自动控制、信号2具体实例实现处理等若干个领域的数学计算。而c#是微软.NET战略中核心的开发工具,它综合了VisualBasic的高首先我们把模型写在Matlab的M—File文件效率和c++功能的强大性,具有良好的界面设计功中,这文件不能直接被C#所用。因此先需要将M—能,可很方便地建立应用程
3、序的可视化界面。File文件换为C#可以识别的对象模式。具体实现方要实现Matlab与C#的混合编程,必须解决两者法是用Maflab的comtool工具可以方便地将M—File间的接口问题,即在C#中如何对已编译的Maflab函文件转化为COM组件,生成的COM组件只要在客数进行调用以及接口间的数据交换。笔者通过将户上注册后即可像使用ActivX控件一样方便地被调Maflab的M—Fjk函数文件编译COM组件,然后在用,其它编程语言也可以通过传参数的方式其加以C#中进行调用以实现混合编程⋯。复用]。下面以在河北省迁安市大庄户矿山的应用1预测模型的选择具列说明。2.1M—Fi
4、le文件编写在矿山的沉降变形预测中有许多可供选择的模在Matlab的Editor功能框里编译模型函数,下型如:灰色理论模型、小波预测模型、神经网络模型面是公式(4)的M—File文件原代码。和概率积分模型等。每个模型都有自己的优缺点,functionYquxianplotplot(r,w)在本论文中笔者选择概率积分模型。下面将倾向达x=一r:O.1:r;到充分采动、走向半无限开采时走向主断面的地表fl=W.(err(X.pi(1/2)/r)+1)/2;变形概率积分模型汇总如下。xlabel(x(m));Wo=mqcosa(1)ylabel(w(x)(mm))g·O:_(2z
5、)text(一75,一300,\fontsize{14}\iti(x));holdon;:±1.52(3)Y=plot(x,f2);2.2生成COM组件)=](4)编写好M—File文件后,在Matlab命令窗口中输人命令comtool,打开COMBuilder窗口。点击Filei(x):x2(5)下的NewProject,建立新工程,在Componentname里():一一x2(6)设置好组件的名称quxianplot,Classes里自动生成quxianplot的Classname。建立好后,然后点击Pro-式中:为最大下沉值;i。为最大倾斜值;KojectlAddfi
6、les,将把上面编好的M—File文件导入新492矿山测量2010年4月工程。添加完m文件后,点击Build中的COMOject命令,就可以生成COM组件。,2.3注册COM组件在Maflab安装目录下work\quxianplot\distrib中把quxianplot_l-0.dll和quxian—plot.cf两个文件拷贝到C#I程目录下bin\Debug中,为可以在C#编译器中调用,还需注册COM组件,打开电脑桌面左下角开始I运行,然后在输入框里输入mwregsvrC释工程路径\bin\Debug\quxianplot一1—0.dll,确定后就完成了COM组件的注册
7、。2.4在C耀序中调用COM组件在C#中打开或者新建一个项目,打开右边的资图1参数输入框源管理器,选择引用后点击右键,选添加引用(也可以在“项目”中选择“添加引用”),在弹出的窗口中选COM,然后也找到quxianplot一1-D.dll,双击就可以选定。这时,该COM组件就添加到C撑工程里面去了,下面是程序中调用COM组件部分源代码:usingquxianplot;privatevoidxiachenbtn—Click(objectsender,EventArgse){chenjianclassClassobjl
此文档下载收益归作者所有