硅谷杂志:Matlab在锅炉课程设计编程中的应用

  [硅谷网12月11日文]据《硅谷》杂志2012年第18期刊文,针对学生这一群体,
提出采用Matlab编写锅炉课程设计程序。程序编写方法简单、语法易懂,非常适合学生这类非">计算机专业人员编制。并且通过编写Matlab调用C语言的接口程序得到热力计算过程中涉及到的水和水蒸汽的物性参数。通过实例验证,本程序计算结果具有很强的准确性。

  

  0引言

  对于每一名热能动力工程及相关专业的学生在学习完锅炉原理这门课程之后都要进行锅炉原理课程设计,作为重要的教学实践环节,学生通过课程设计可以对所学相关知识进行巩固、充实、提高。现在大多数院校在进行锅炉课程设计时,同学们
普遍采用手算方法,然而热力计算是一个极其繁琐
复杂的过程,涉及的参数
众多、计算过程复杂并且需要多次迭代计算,手算存在计算速度慢、耗时长、准确度低等问题[1]。

  1MATALAB编写计算程序

  1.1MATALAB与EX
C++EL相结合编写锅炉课程设计程序

  针对学生这一编程能力较弱的群体,本文提出采用Matlab与Excel相结合的方法编写锅炉热力计算程序。对于大多数高等院校都开设了Matlab这门课程,对于没有学习过这门课程的同学来说,Matlab与其他编程方法有很多相通之处,短时间即可掌握,同时与VB、C++、Fortran等语言相比具有编程方便简洁,语法易懂的
优点[2]。同时Excel具有清楚明了、易于操作的优点。Excel表格用于承载所有热力计算过程中的输入和输出数据。如果已知参数改变,仅需要改变Excel表格中的数据即可,对其他程序没有影响[3]。该编程方法计算速度快,准确程度高,编程方法简单,易于操作,对于学生这一群体编写锅炉热力计算程序具有无法比拟的优势。

  本文以1973年前苏联《锅炉热力计算标准方法》为理论依据,针对锅炉课程设计指导书中一台SG-400/140-50415锅炉采用Matlab与Excel相结合的方法进行编程。热力计算过程采用模块化结构,将燃烧产物、热平衡、炉膛、后屏过热器、对流过热器、高温再热器、转向室、低温再热器、旁路省煤器、主省煤器、空气预热器分别编写独立的M文件,最后通过一个主M文件调用各个M文件,即可完成整个热力计算过程。当需要修改某一设备参数时,只需要改动独立的M文件,不会影响其他设备的计算,具有很强的独立性[4]。

  热力计算程序流程大致分为以下几个方面:

  1)燃料与燃烧产物计算和锅炉热平衡计算;

  2)炉膛热力计算;

  3)后屏过热器、对流过热器热力计算;

  4)高温再热器、转向室、低温再热器热力计算;

  5)旁路省煤器、主省煤器和空气预热器热力计算;

  6)热空气温度及排烟温度校核[5]。

  1.2编写Matlab调用C语言的接口程序

  热力计算过程中涉及到计算水和水蒸汽的温度、焓值、比热等物性参数。文中采用IF97公式计算水和水蒸汽的物性参数,它是目前国际公认的最准确的水和水蒸汽的热力性质计算公式。IF97将整个区域划分为5个区域,每个区域又划分为若干个子区域,计算过程十分复杂。由于本校老师已经用C语言编写过IF97公式的程序,只要编写Matlab调用C语言的接口程序就可以避免重复编程,减少很大的工作量。在Matlab中可调用的C语言程序称为MEX文件。Matlab能够直接把MEX文件视为它自身存在函数调用,能够自动载入并执行MEX文件。MEX文件中,Matlab是程序的主体,MEX文件是被Matlab调用的子程序。

  以已知温度、压力求焓值为例,编写接口函数mexFunction的过程
如下所示。

  VoidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[])

  {

  double*t2;

  doublep2,h2;

  plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);

  t2=mxGetPr(plhs[0]);

  p2=*(mxGetPr(prhs[0]));

  h2=*(mxGetPr(prhs[1]));

  pt(p2,t2,&pt2);

  *h1=pt2.h;

  }

  在Matlab工作空间中将MEX文件编译成功后,当计算过程已知给水温度为235℃、压力15.68MP,求焓值时只需如下编写就可以得到给水焓值,在C语言编写水蒸汽物性参数过程中,压力的单位运用的是KP。

  gswd=235;%给水温度

  gsyl=156.8;%给水压力

  gsh=HZ(gsyl,gswd);%给水焓值

  2.3插值法确定图标中对应参数值

  在热力计算过程中,为了简化计算,使用了许多线算图、曲线、表格。对于图表的处理,可采用曲线拟合、插值等原理确定。在计算初期尝试过曲线拟合的方法,存在着个别数值与实际值存在10%以上误差的现象,同时进行线性回归时涉及到很多数学原理,对于数学基础差的同学存在着很大的困难。当采用插值法时,只要选取的数据足够多,
就会得到令人满意的结果,并且计算速度完全满足计算要求。文中以屏的修正系数为例,

  当zhxs=0.96时屏修正系数计算结果为0.765,结果与查图结果一致,计算准确性很高。

  2举例应用

  课程设计指导书中已知参数如表1所示,本程序计算结果及书中结果如表2所示。

  表1课程设计指导书中已知参数

  名称 单位 数值

  锅炉蒸发量 

  420

  再热蒸汽流量 

  350

  给水温度 ℃ 235

  过热蒸汽温度 ℃ 540

  再热蒸汽温度 ℃ 330

  环境温度 ℃ 20

  表2本程序计算结果及书中计算结果

  名称 单位 书中结果 程序结果

  炉膛出口烟温 ℃ 1109.5 1105

  排烟温度 ℃ 145 143

  锅炉效率 % 89.92 90.13

  本程序计算结果与书中计算结果最大相对误差为1.3%,在热力计算标准所允许的范围内,因此,该程序运用到锅炉热力计算中是可靠的。

  3结论

  1)采用Matlab编写锅炉热力计算程序编程方法简单、易于操作,非常适合学生这类编程基础较差的人群使用。

  2)已有IF97C语言程序基础上编写Matlab调用C语言接口程序,方法简单,避免重复编程。

  3)对于图表的处理,采用插值法确定对应参数点的值,与曲线拟合相比准确性较高,方法简单,对于数学基础要求不高,并且计算速度完全满足要求。

  4)与课程设计指导书结果相比较,得到该程序计算准确性极高,在误差允许范围内。

  作者简介:

  徐芳(1986-),女,助教,东北电力大学教务处仿真中心工作。

时间: 2024-10-29 14:31:46

硅谷杂志:Matlab在锅炉课程设计编程中的应用的相关文章

叶子结点-二叉树的c++编程,我们做课程设计

问题描述 二叉树的c++编程,我们做课程设计 二叉树的前序,中序,后序遍历,求叶子结点,结点个数,和深度的编程 解决方案 用MatLAB做电路课程设计教你做课程设计! 解决方案二: http://www.cnblogs.com/elleniou/archive/2012/05/03/2480042.html

软件设计/编程的基本技术(附图)

目录 1.设计父类时考虑不周到,等到设计或者编写子类的时候,才发现父类需要修改.增加功能等等,都很平常 2.尽量避免多次写同样的代码 3. 持续改进 4.评价软件设计的高低的几个基本原则 内容 1.软件设计/编程中,有一门基本技术叫"面向对象编程".面向对象编程的基本思路是对象封装和继承.继承的基本思路是,所有子类共同的部分,提取.抽象后,放到父类中. 这是一个说起来容易,做起来难的事情.父类总是先设计,先实现.一个父类一般都有多个子类.没有人能够先知先觉.设计父类时考虑不周到,等到设

界面划窗口设计-matlab与vs混合编程中,用户操作界面怎么设计,而且界面上的输入如何与matlab对应的值相对应??

问题描述 matlab与vs混合编程中,用户操作界面怎么设计,而且界面上的输入如何与matlab对应的值相对应?? matlab与vs混合编程中,用户操作界面怎么设计,而且界面上的输入如何与matlab对应的值相对应?? 解决方案 你界面用matlab做的还是用winform做的?

c语言课程设计总结心得大全

c语言课程设计心得体会范文一: 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在.因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的. 回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固

新手 菜鸟 问题-求解数据结构课程设计问题

问题描述 求解数据结构课程设计问题 学生成绩管理系统 设计目的: 1 掌握线性链表的建立. 2 掌握线性链表的基本操作. 3 掌握查找的基本算法. 设计内容: 利用线性链表实现学生成绩管理系统,具体功能:输入.输出.插入.删除.查找.追加.读入.显示.保存.拷贝.排序.索引.分类合计.退出,并能在屏幕上输出操作前后的结果. 设计要求: 1 写出系统需求分析,并建模. 2 编程实现,界面友好. 3 输出操作前后的结果. 解决方案 建立一个类/结构体 student s{ str Name; str

Matlab与C/C++混合编程接口应用总结 .

在参考文献基础上.补充和完善了. Matlab与C/C++混合编程接口及应用   摘要:Matlab具有很强的数值计算和分析等能力,而C/C++是目前最为流行的高级程序设计语言,两者互补结合的混合编程在科学研究和工程实践中具有非常重要的意义.从Matlab调用C/C++代码及C/C++调用m文件两方面,深入地研究了它们之间混合编程的原理和实现机制,并且给出了具体条件下的混合编程方法和步骤.实验表明,给出的Matlab与C/C++混合编程接口及应用方法是有效.实用的. 1引言 Matlab是当前应

《计算机网络课程设计(第2版)》——1.4节课程设计要求及评分标准

1.4 课程设计要求及评分标准 安排网络课程设计的目的有两个:一是引导学生将书本上抽象的概念与具体实现技术结合起来,使学习深化:二是消除学生对协议的神秘感,调动学生学习的积极性与主动性. 网络课程设计基本是按照上述的知识体系安排的.本书中的14个课程设计课题基本覆盖了上述4个学习单元的主要内容.每个题目都具有一定的代表性,希望学生通过完成课程设计课题,体会网络协议设计与实现过程,以及专业技术人员所使用的基本方法和技巧. 课程设计要求: 1) 正确理解题意. 2) 有良好的编程规范和适当的注释.

做课程设计-大海战游戏的问题

问题描述 小弟今年大三,这学期碰上要做课程设计了,之前只学过C++,和一部分C的练习,编程水平比较菜.这次课程设计是和其他同学合作的,需要用C#,平时课业繁忙,还没多少时间专门学习C#的.现在做这个大海战游戏碰到了不少问题,来寻求思路.首先说一下题目要求:敌我双方各有16*16格的"海域"可以排布战舰,地方战舰排布不可见,先击毁对方所有战舰者胜.敌方是电脑随机排布,随机攻击的.船有好几种,有5*1格大小的,有2*1格大小的等等.这里不方便发图,就说一下我现在的做法吧.双方海域各放了25

《C语言课程设计》一导读

前 言 C语言课程设计是计算机程序设计的主要实践课程,为帮助读者熟练掌握基本的程序设计方法,我们编写了本书. 本书将程序设计题目分为文件类.字符串类.算法类.综合类和其他类共五大类,集同类题目于一章,方便读者集中学习:不少题目提供了多种实现方法,启发读者多角度思考:题目分析力求重点突出.简洁明了,而非面面俱到,希望读者能够结合参考程序阅读思考. 本书对C程序设计语言的编程环境.调试程序的基本方法.编码风格等方面进行了介绍.参考程序均按照编码风格并使用标准C语言撰写,以增强程序的可读性,方便读者自