预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

fortran与matlab混合编程实现溴化锂水溶液的物性计算可视化 以溴化锂水溶液为工质的吸收式制冷既可利用蒸气,热水,燃气、燃油等能源,还可利用 工业余热、废热、太阳能、地热能等低品味能源作为动力,同时工质对大气臭氧层无破坏作 用,这些节能、环保方面独特的优势使得溴化锂吸收式制冷具有了广阔的市场和良好的发展 前景。随着溴化锂吸收式制冷机组在技术与应用上的不断发展,人们对机组的优化设计、变 工况条件下最佳运行参数的动态调整和自动控制等方面提出了更高的要求,也越来越多地要 求利用计算机进行设计和计算。传统的这类计算都要借助于溴化锂水溶液的物性数据图表, 从图表上查出或手算出有关物性参数和热力过程特性数据。但是这种方法繁琐,费时,误差 较大,已经远远不能满足现在的应用需求,为此,能不能找到一种可以动态绘图,自动捕捉 状态点,鼠标实时显示状态点参数,并根据已知的的状态参数求其他未知的参数,根据用户 需要直接绘制溴化锂吸收式制冷循环流程图的方法,已成了急需解决的问题。基于此,本文 尝试从满足以上几种功能出发,利用FORTRAN与Matlab混合编程,充分结合Fortran运算 速度快,Matlab矩阵计算及图形处理功能强的优点,实现了溴化锂水溶液物性计算的可视 化。 1溴化锂水溶液物性计算可视化的基本思想 使用过Fortran、C和C++等传统的高级语言进行编程的读者可能都知道,在对矩阵, 运算尤其是复杂的绘图操作时,程序设计将是一件非常困难,又不能很好的实现预想效果的 任务,Matlab(又称MatrixLabrotary)就是Mathworks公司推出的最初用于解决该问题的 以矩阵(Matrix)和阵列(Array)为基本编程单元的,拥有完整的控制语句、数据结构、 函数编写与调用格式和输入输出功能的具有面向对象程序设计特征的高级程序语言,其强大 的科学计算与可视化功能,简单易用的开放式可扩展环境以及30多个面向不同领域而扩展 的工具箱(TOOLBOX)支持,包括了通信系统、信号处理、图象处理、小波分析、鲁棒 控制、系统辨识、非线性控制、模糊控制、神经网络、优化理论、样条、商用统计分析等大 量现代技术学科的内容,使得MATLAB在许多科学领域中成为计算机辅助设计与分析、算 法研究和应用开发的基本工具和首选平台。 本文就是基于MATLAB的科学运算环境,利用MATLAB外接程序接口API(Matlab ExternalApplictionProgramInterface)技术,通过Mex接口函数编译由Fortran6.5编写 的溴化锂水溶液物性计算子程序,生成MATLAB环境下可以直接调用的动态链接子程序D LL文件然后充分利用MATLAB强大的图形绘制及编辑功能,编程生成.M文件,并在图 形用户界面设计(GUI)的基础上,编写实用且易于操作的用户界面,实现人机交互绘图,实 时显示状态点,自动绘制流程图等一系列在其他高级语言看来很难实现的功能。 2实现溴化锂水溶液物性计算可视化的步骤: 1)Fortran环境下的溴化锂物性子程序的编写 溴化锂水溶液的物性实验数据经过多次改进,并不断扩充其使用范围,最初由美国供暖 制冷空调工程师协会(ASHRAE)给出了溴化锂水溶液的平衡方程[1];文献[2]则在总结前人实 验数据的基础上,将溴化锂水溶液的使用范围从原来的浓度范围0~65%,温度范围0~12 0℃扩充到了0~75%,0~190℃;其他的还有如文献[3]提供的国内溴化锂水溶液的物性数 据图表.本文的溴化锂水溶液物性子程序的编制是基于文献[1]的物性方程,并利用文献[2]的 方程与数据将其范围扩充,然后与文献[3]的数据进行比较,以得到适合国内溴化锂水溶液的 物性方程。 该溴化锂水溶液物性程序包括20个子程序用来已知压力P、浓度ζ,温度T,焓值h 中的任意两个变量求其他变量的值,以及溶液平衡时水蒸气或过热蒸气的焓值,纯水的热物 理性质等,每个子程序还可以同时求得溴化锂水溶液的其他物性参数如导热系数、粘度、密 度、表面张力等。 2)利用Mex接口函数生成可以被Matlab识别的Fortran-Mex文件 所谓Mex接口函数,实际是一种动态链接的子程序,同Matlab的内置函数一样,能被 Matlab的解释器自动装入、运行。Matlab中Mex文件的扩展名可以为.Mex或.DLL,它是 由Fortran经过编译生成的Matlab动态链接子程序,需要强调的是Fortran下Mex文件的数 据类型只能是双精度型(DoublePrecision),不像C语言那样,有Matlab支持的数据类型。 通常一个典型的Fortran-Mex文件由两部分组成,一个就是包含你要实现的计算功能 的子例行程序(不能是函数),该子例行程序实际上就是纯Fort