基于混合编程技术的输油管道实验仿真系统开发

来源 :空中英语教室·新教师教学 | 被引量 : 0次 | 上传用户:lulu6661125
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】 输油管道实验仿真系统开发过程中,采用Visual C++设计程序框架,用Flash设计用户界面,MATLAB做后台数值计算以及曲线的输出,EXCEL作为数据的表格输出,实现的多种语言及应用程序的混合编程,取得了较好的仿真效果。该仿真系统可以作为学科教师的辅教工具,也可以结合实验课程供学生自主学习时使用。
  【关键词】 混合编程;实验仿真;Visual C++;Flash;MATLAB;软件开发
  【中图分类号】JE973 【文献标识码】A 【文章编号】1001-4128(2010)09-0187-02
  
  1 概述
  工科专业通常重视实验环节,强调动手操作能力,但是限于实验、实习条件的限制,多数学校都存在着实验无法开设或达不到预期效果的情况,影响教学效果。目前很多实验难以实现或无法实现的原因主要有:
   实验设备价格昂贵,动辄近百万的设备很常见。因此,受经济条件制约,只能有选择的进行部分实验,而很多对教学及科研颇具意义的实验无法开设,即使能勉强开设,实验效果也不理想;
   实际应用中的设备尺寸一般较大,而实验室中通常采用较小尺寸的设备模拟,这必然对实验结果造成一定程度的影响,有时甚至会出现不准确的模拟结果;
   有些专业的实验介质具有危险性,如易燃易爆、有毒等等,有的费用较高,只能采用其它介质代替,但是由于介质间物性存在区别,影响实验效果;
   很多具有危险性或破坏性的实验无法采用真实装置进行,如管道高压下破裂爆炸等。
  因此,利用计算机模拟实验过程,开发实验仿真系统是十分必要的。
  2 混合编程技术应用的意义
  开发实验仿真系统,常见的计算机编程语言或工具包括VC、VB等高级可视化语言,Flash等界面设计工具以及MATLAB等专业软件,每种语言都有自己的特点,但是又都不是万能的,VC在程序设计方面具有较大的优势,但是利用它开发漂亮美观的界面,尤其是动画就有较大的难度了,这一点Flash就很合适,而在后台计算方面,MATLAB又有着前两者都不具备的优势,所以,开发一套计算速度快、界面美观、结果准确的实验仿真系统,最好的办法是能将多种开发工具结合起来,利用各自的优势和特长,这样才能轻松的开发出高水准的实验仿真系统。
  下面以输油管道实验仿真系统为例,简单介绍利用VC++、Flash、MATLAB以及Ms Office等工具混合编程的方法。
  3 输油管道实验仿真系统的结构及特点[1,2]
  输油管道是油气储运工程专业最重要的专业课程之一,其实验教学主要包括离心泵性能实验,输油管道稳态、瞬态实验等,据此开发的仿真系统结构参见图1。
  在仿真系统主界面内,对实验装置及具体参数进行了介绍,并且配有装置的实物图片,使用户建立对装置的感性认识。在主界面之下,各个实验项目自成系统,主要内容均包括:
  3.1 实验原理和实验内容的介绍;
  3.2 实验中涉及的工艺流程的动画演示;
  3.3 实验的仿真操作。在这里可以通过鼠标控制实验设备的状态,进行仿真实验操作,并根据系统提示记录实验数据,进行数据处理。
  输油管道仿真系统具有如下特点:
  ①仿真系统是以Windows作为开发与应用平台,采用面向对象编程的Visual C++搭建程序框架,采用Flash制作用户界面,MATLAB进行后台主要计算,Excel输出数据表格,实现了多种应用程序混合编程,结合众多软件的优势,为仿真系统功能的实现提供了可能性;
  ②各实验操作界面模仿了真实的实验环境和设备,立体感、真实感强;
  ③仿真系统结合油气储运工程综合实验室的环道设计实验流程,可以将仿真结果与真实实验结果相对照,检验实验效果,实验前的预习过程,方便同学理解实验流程图等。另外,系统允许自主修改实验设定,如环道长度、管径、实验介质等等,又提供高度的灵活性,在各实验中均可独立进行参数设置,丰富了仿真实验的内容;
  ④进行实验操作时不必学习和记忆任何复杂的手册或功能键。操作时犹如身临其境,只要利用鼠标按动“开”或“关”即可开启实验设备,且可以点击“实验步骤”按钮查看实验步骤提示。
  
  实现了“无实验手册操作”,显著提高了实验效果;
  ⑤实验原始数据记录和数据处理结果显示等功能齐全,做到了边实验、边进行数据分析处理、边显示。
  4 输油管道实验仿真系统开发中的关键技术问题[3-9]
  4.1 VC与Flash联合编程
  将Flash动画嵌入自己的程序中,使用Shockwave Flash Object控件就可以实现。
  首先,确认系统上已经注册了Shockwave Flash Object控件。如果系统上装有Flash,则就有这个控件,否则,可以到网上下载后安装。flash5.0以下的文件名是swflash.ocx,5.0以上版本的名字是flash.ocx。
  和使用Button、Edit等其它Windows控件一样,将其拖动到对话框上,给它关联一个对象,对象的类就是插入控件时所生成的类。假设关联的对象名为m_Flash。使用成员函数LoadMovie和Play来导入并播放动画。
  导入Flash动画:m_Flash.LoadMovie(0,strMovieUrl);strMovieUrl为要播放的flash路径,要用绝对路径。
  播放Flash动画:m_Flash.Play()。
  Flash和VC程序间的消息传递问题通过Flash的动作脚本语言Action Script(简称AS)实现,里面有个命令叫FSCommand,Flash就是通过这个命令向外部发送消息的。这个命令有两个参数,都是字符串,可以在flash脚本中指定任意的字符串。比如用户按下flash动画的一个按钮就发送FSCommand (“bt”,“bt1”)这样一个消息,按下另一个按钮发送FSCommand(“bt”,“bt2”),而程序收到FSCommand消息后就对通过两个参数的不同字符串来判断用户按下的是哪个按钮。
  4.2 VC与MATLAB联合编程
  MATLAB在仿真系统中主要用于方程组的求解、曲线拟合以及函数曲线的输出,常用的方法是通过引擎(Engine),采用客户机服务器的计算模式,通过Window的ActiveX通道和Matlab进行连接,通过调用Matlab引擎在后台实现与服务器的连接,实现动态通信。主要代码如下:
  #include “engine.h” //包含引擎头文件
  Engine *ep; //定义引擎
  ep=engOpen(NULL); //引擎初始化
  mxArray *T = NULL; //变量定义
   T = mxCreateDoubleMatrix(1, 5, mxREAL);
   mxSetName(T, “T”);
   memcpy((char *) mxGetPr(T), (char *) tab, 5*sizeof(double));
   engPutArray(ep, T);
  //以下是执行MATLAB命令
   engEvalString(ep, “plot(T,D,'o',T,a)”);
   CWnd* pWnd=FindWindow(NULL,“Figure No. 1”);
   engEvalString(ep, “title('油温和地温');”);
   engEvalString(ep, “xlabel('距离(公里)');”);
   engEvalString(ep, “ylabel('温度 (摄氏度)');”);
   mxDestroyArray(T);//变量释放
  }
  
  4.3 VC与EXCEL联合编程
  VC与EXCEL数据传递的方法有很多,比较简单的方法是首先在EXCEL中制作模板,然后在生成报表时调用模板。简单代码如下:
  _Application ExcelApp;
  Workbooks wbsMyBooks;
  _Workbook wbMyBook;
  Worksheets wssMysheets;
  _Worksheet wsMysheet;
  Range rgMyRge;
  //创建Excel 2000服务器(启动Excel)
  if (!ExcelApp.CreateDispatch(“Excel.Application”,NULL)) {
   AfxMessageBox(“创建Excel服务失败!”); exit(1); }
  //利用模板文件pipe.xlt建立新文档
  wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
  wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(sss+“\\pipe.xlt”)));
  wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true); //得到Worksheets
  wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t(“sheet1”)),true); //得到sheet1
  //得到全部Cells,此时,rgMyRge是cells的集合
  rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);
  //向EXCEL单元格 (i,j) 中写入数据预先指定好格式的Text
   rgMyRge.SetItem(_variant_t((long)(i)),_variant_t((long)(j)),_variant_t(Text));
  wbMyBook.SetSaved(true);
  ExcelApp.SetVisible(true);
  //释放对象
  rgMyRge.ReleaseDispatch();
  wsMysheet.ReleaseDispatch();
  wssMysheets.ReleaseDispatch();
  wbMyBook.ReleaseDispatch();
  wbsMyBooks.ReleaseDispatch();
  ExcelApp.ReleaseDispatch();
  5 结论
  输油管道实验仿真系统,模拟了真实的实验场景,满足了实验学习的需求,主要包括实验原理、实验内容、实验工艺流程等相关内容的介绍,实验操作过程的仿真模拟以及实验数据的在线处理。经过使用验证,实验计算结果与实测数据基本吻合,使用过实验仿真系统的学生普遍反应,对于实验过程的了解明显加深,学习效果得到大幅的提升。
  参考文献
  [1] 杨筱蘅.输油管道设计与管理[M].中国石油大学出版社,2006:23-75
  [2] 潘霞等.管道泄漏检测实验系统设计与实现[J].船海工程,2007,36(2):44-47
  [3] 罗卫东.用Flash AS3设计与实现电路实验仿真课件[J].物理教师,2008,9:48-49
  [4] 王明福等.Visual C++ 程序设计[M],高等教育出版社,2003
  [5] 张培等.Flash 8入门与提高实例教程[M],机械工业出版社,2007
  [6] 王沫然.MATLAB与科学计算[M],电子工业出版社,2003
  [7] 刘素心等.基于Matlab的通信系统的实验仿真设计[J], 实验室科学,2008,3:101-103,105
  [8] 曾朝霞等.用Flash MX 2004开发离心泵实验仿真课件[J],计算机与应用化学,2007,24(8):1127-1130
  [9] 胡涛等.VB结合Flash制作化工原理离心泵实验CAI课件[J].宁波工程学院学报.2007.19(2):57-62
  
  Development of Oil Pipeline Experiment Simulation System Based on Mixed Programming Technology
  【Abstract】: During the development period of the pipeline experiment simulation system, we use Visual C++ to establish the frame, Flash to design the GUI,MATLAB to calculate at background and show the figure, and EXCEL to display the data table, thus form the mixed programming technology. The experiment simulation system can use as an assistant tool of experiment teachers, and be supplied to students to self-study.
  【Key Words】: Mixed Programming;Experiment Simulation;Visual C++;Flash;MATLAB;Software Development
其他文献
【摘要】以现代素质教育思想为指导,从生命科学人才创新能力培养为切入点,对实验中心建设的总体目标、建设内容、实验教学定位、师资队伍建设、实验中心管理及教学改革等问题进行了研究和教学实践,经过六年的集中建设,中心已经具备了良好的软硬件条件,实验中心的体制和功能渐趋完善,推动了生命科学类本科生专业人才的培养。  【关键词】实验教学中心;研究;建设  【中图分类号】G633.91 【文献标识码】A 【文章
期刊
【摘要】如何让学生进入课文中的情境中去,靠老师的一根粉笔,一张嘴,一本课本,打动学生,让学生进入课文情境,是很难实现。情境教学的目的是在于促进学生发展,所以,语文课堂教学中要针对学生的心理,结合课文内容,拓展教学思路,创设各种情境,从而激发起学生的情感,使学生深刻理解课文。  【关键词】语文;课堂教学;学生;情境创设  【中图分类号】G623.2 【文献标识码】B 【文章编号】1001-4128(
期刊
【中图分类号】G623.31 【文献标识码】B 【文章编号】1001-4128(2010)08-0044-01    奈斯比特说过:“处于伟大的知识经济时代,我们最需要的是创造力和创造精神。”21世纪要求人才具有创新精神和实践能力。那么,如何适应时代需要培养出具有创新精神和实践能力的人才,是每一位教师都应认真思考的问题。现结合英语学科的特点,谈谈自己的看法。  1 转变教育观念,是创新教育的前提 
期刊
【中图分类号】G633.7 【文献标识码】B 【文章编号】1001-4128(2010)08-0045-01    初中物理新课标从教学理念到教学的内容与旧的教学大纲相比都发生了很大的变化,教师必须寻求恰当的教学方法,才能适应新课标和新教材的要求。教学既要重视基本知识和基本技能,又要重视知识、技能的形成过程,发展学生的能力。教学中各环节都要适应新课改的要求有所变化,本文仅从以下三个方面来谈一下想法
期刊
【中图分类号】G899 【文献标识码】B 【文章编号】1001-4128(2010)08-0046-01    综合实践活动是以学生的兴趣和直接经验为基础,以学生学习生活和社会生活密切相关的各类现实性、综合性、实践性问题为内容,以研究性学习为主导学习方式,以培养学生的创新精神、实践能力及体现知识的综合运用为主要目的的一类新型课程。综合实践活动课的产生,向广大教师提出了挑战,这一新生事物将成为通往成
期刊
【摘要】高中数学新课程标准的制订,标志着我国中学数学课程改革进入了一个新的历史阶段。新一轮数学课程改革从理念、内容到实施,都有较大变化,这就向我们广大中学数学教师提出了挑战。在新课程标准下,高中数学教学方法的优化策略有创设情境,激发爱好;准确定位新增加内容;培养学生良好的思维习惯;发展学生的创新意识。  【关键词】新课标;高中数学;教学方法;优化策略  【中图分类号】G623.5 【文献标识码】B
期刊
【摘要】兴趣是最好的老师。如果能培养学生学习物理的兴趣,那么对于物理教学将是非常有益的。结合实际、制造悬念、引起冲突、新鲜刺激、良性互动都是培养兴趣的手段。  【关键词】兴趣;培养;物理学习  【中图分类号】G633.7 【文献标识码】B 【文章编号】1001-4128(2010)08-0052-02    学习兴趣是学生对学习活动和学习对象的一种力求趋近或认识的倾向,是推动学习的最有效的内部动力
期刊
【摘要】 《少先队辅导员工作纲要(试行)》中指出:“少先队全面贯彻党的教育方针,按照实践育人的要求,努力提高少年儿童的综合素质,促进他们全面发展。”队员综合素质的提高只靠学科教育是远远不够的,丰富多彩的队活动是提高队员综合素质的有效途径。无论何种形式的队活动都应该与队员的实际,生活环境有机地结合在一起,而校本课程就是根据队员实际和环境资源选择的课程内容。我们学校位于南阳赭山,历史悠久,文化底蕴深厚
期刊
【摘要】本文通过在大学英语听说课中进行实验教学,考察应用图式理论对提高学生英语听说水平的意义。研究者对实验组运用了基于图式理论的教学,对控制组只进行了教师用书规定的教学。研究者对两组进行了实验后测试。虽然反馈显示基于图式理论的教学对提高英语听说水平有积极作用,但对测试的统计数据显示,教学结束后,两组学生的英语听说成绩不存在明显差异。因此,研究者得出结论,基于图式理论的教学活动对提高学生的元认知水平
期刊
【中图分类号】G623.5 【文献标识码】B 【文章编号】1001-4128(2010)08-0058-02    埃德加富尔在《学会生存》一书中指出:“未来的文盲不再是不识字的人,而是没有学会怎样学习的人。” 就是说,学生不能只掌握学习内容,还要检查、分析自己的学习过程,要学生对如何学、如何巩固,进行自我检查、自我校正、自我评价。笔者结合实践,浅谈初中数学方法应用。   1 非智力因素对数学学习
期刊