前段时间有多个网友询问在64位Matlab中如何使用WASPCN(水和蒸汽性质计算软件)的方法,一直没能给出解决方案。

最近自己有个项目也需要在64位Matlab中如何使用WASPCN(水和蒸汽性质计算软件),不得不设法解决问题了。

整个解决过程还真不简单。

需要先把原来的WASPCN.dll修改出64位版本的dll,由于原来dll是采用Delphi开发的,64位版本修改过程遇到了一些技术问题一直未能解决,最后不得不放弃,改用VC来重新dll。

还好以前有基础,先把32位dll的编程语言由Delphi换成VC,调试通过获得了waspcn32.dll,并进行了软件测试。 然后再改成64位版本的,编译获得了waspcn64.dll。

最后就是完成Mex扩展库的更新, 分别编写出32位版本的WASPCNMEX32.mexw32和64位版本的WASPCNMEX64.mexw64。

现在在Matlab可以采用两种方式装载WASPCN计算库。

方法一:装载Mex扩展库方式。
方法二:装载普通DLL库方式。

一、在MATLAB中使用《水和蒸汽性质计算》(WASPCN)的方法(采用Mex方式)。
--------------------------------------(32 位 MATLAB)----------------------------
(1)确保Waspcn32.dll在操作系统的搜索路径(例如:D:\Program Files\MATLAB\R2011b\runtime\win32)中,或MATLAB的可搜索路径中。(可通过Path命令来查看。)。
(2)把Mex扩展库WASPCNMEX32.dll文件拷贝到MATLAB的userpath路径(例如:C:\Users\WASPCN\Documents\MATLAB)中。(可通过userpath命令来查看。)
为了和高版本的Matlab兼容(比如Matlab R2008),需要把WASPCNMEX32.dll的扩展名由dll改成mexw32(即WASPCNMEX32.mexw32)。
(3)在MATLAB的命令窗口中输入如下形式的命令来计算(请注意WASPCNMEX32必须是大写,其它函数可以大小写混用)。
%a.输入4参数,输出2参数
[N,R] = WASPCNMEX32('PT2N',16.67,535.0,0.00001)
   
%b.输入3参数,输出2参数
[H,R] = WASPCNMEX32('pt2h',16.67,535.0)
    
%c.输入2参数,输出2参数
[T,R] = WASPCNMEX32('P2T',10.0)
%d.输入3参数,输出1参数
H     = WASPCNMEX32('pt2H',16.67,535.0)
%e.输入3参数,输出1参数
T     = WASPCNMEX32('p2T',10.0)
%f.输入3参数,输出7参数
[P,T,H,S,V,X,R] = WASPCNMEX32('PT',16.67,535.0)
--------------------------------------(64 位 MATLAB)----------------------------
    
(1)确保Waspcn64.dll在操作系统的搜索路径(例如:D:\Program Files\MATLAB\R2011b\runtime\win64)中,或MATLAB的可搜索路径中。(可通过Path命令来查看。)。
(2)把Mex扩展库WASPCNMEX64.dll文件拷贝到MATLAB的userpath路径(例如:C:\Users\WASPCN\Documents\MATLAB)中。(可通过userpath命令来查看。)
为了和高版本的Matlab兼容(比如Matlab R2008),需要把WASPCNMEX64.dll的扩展名由dll改成mexw64(即WASPCNMEX64.mexw64)。
(3)在MATLAB的命令窗口中输入如下形式的命令来计算(请注意WASPCNMEX64必须是大写,其它函数可以大小写混用)。
%a.输入4参数,输出2参数
[N,R] = WASPCNMEX64('PT2N',16.67,535.0,0.00001)
   
%b.输入3参数,输出2参数
[H,R] = WASPCNMEX64('pt2h',16.67,535.0)
    
%c.输入2参数,输出2参数
[T,R] = WASPCNMEX64('P2T',10.0)
%d.输入3参数,输出1参数
H     = WASPCNMEX64('pt2H',16.67,535.0)
%e.输入3参数,输出1参数
T     = WASPCNMEX64('p2T',10.0)
%f.输入3参数,输出7参数
[P,T,H,S,V,X,R] = WASPCNMEX64('PT',16.67,535.0)    

二、在MATLAB中使用《水和蒸汽性质计算》(WASPCN)的方法(采用LoadLibrary方式)。

--------------------------- 32位 的matlab ----------------

(1)确保Waspcn32.dll在操作系统的系统搜索路径中(例如:D:\Program Files (x86)\MATLAB\R2014a\runtime\win32)或MATLAB的可搜索路径中。(可通过Path命令来查看。)
(2)把WASPCN32.h文件拷贝到MATLAB的userpath路径(例如:C:\Users\WASPCN\Documents\MATLAB)中。(可通过userpath命令来查看。)
或者
创建自定义目录(例如:D:\Program Files (x86)\MATLAB\R2014a\toolbox\WASPCN)并添加到系统path
%  把创建的目录添加到系统path中
addpath(genpath('D:\Program Files (x86)\MATLAB\R2014a\toolbox\WASPCN'));
%  保存路径
savepath; 
(3)在MATLAB的命令窗口中输入如下形式的命令来调用WASPCN中的函数。
% 装载函数库(loadlibrary dll文件名 h文件名)
loadlibrary WASPCN32 WASPCN32.h;
%
% 调用函数calllib('dll文件名', 'T_P97', 16.0)
T=calllib('WASPCN32', 'T_P97', 16.0)
%
P=calllib('WASPCN32', 'P_T97', 300.0)
%
H=calllib('WASPCN32', 'H_PT97', 16.0,535.0)
%
% 卸载函数
unloadlibrary WASPCN32
--------------------------- 64位 的matlab ----------------
Win7 64位系统 安装64位的matlab
(1)确保Waspcn64.dll在操作系统的系统搜索路径中(例如:D:\Program Files\MATLAB\R2011b\runtime\win64)或MATLAB的可搜索路径中。(可通过Path命令来查看。)
(2)把WASPCN64.h文件拷贝到MATLAB的userpath路径(例如:C:\Users\WASPCN\Documents\MATLAB)中。(可通过userpath命令来查看。)
或者
创建自定义目录(例如: D:\Program Files\MATLAB\R2011b\toolbox\WASPCN)并添加到系统path
%  把创建的目录添加到系统path中
addpath(genpath('D:\Program Files\MATLAB\R2011b\toolbox\WASPCN'));
%  保存路径
savepath; 
(3)在MATLAB的命令窗口中输入如下形式的命令来调用WASPCN中的函数。
% 装载函数库(loadlibrary dll文件名 h文件名)
loadlibrary WASPCN64 WASPCN64.h;
%
% 调用函数calllib('dll文件名', 'T_P97', 16.0)
T=calllib('WASPCN64', 'T_P97', 16.0)
%
P=calllib('WASPCN64', 'P_T97', 300.0)
%
H=calllib('WASPCN64', 'H_PT97', 16.0,535.0)
%
% 卸载函数
unloadlibrary WASPCN64
    

当然,这两个WASPCN  For Matlab的接口可以从scyangyu.ys168.com下载。

再次完善了 WASPCN for Matlab的更多相关文章

  1. MATLAB 与 Excel 接口

    MATLAB 与 Excel 接口MATLAB 与 Excel 有两种接口方式:一种是通过 MATLAB 提供的 Excel 生成器,生成220 MATLAB 实用教程DLL 组件和 VBA 代码,实 ...

  2. SQL Server 维护计划实现数据库备份(策略实战)

    一.背景 之前写过一篇关于备份的文章:SQL Server 维护计划实现数据库备份,上面文章使用完整备份和差异备份基本上能解决数据库备份的问题,但是为了保障数据更加安全,我们需要再次完善我们的备份计划 ...

  3. 从零开始编写自己的C#框架(7)——需求分析

    本章内容虽然叫“需求分析”,实际上关于具体的需求分析操作步骤并没有深入去写,因为细化的话那将是一本厚厚的书,而需求分析在本系列中,是帮助大家了解项目的基本要求(主要针对本项目而已).而写本章的主要目的 ...

  4. php之验证码小程序

    验证码功能(个人理解): 减轻服务器的压力(如12306的验证码功能): 防止暴力注册 个人思路:在a-z,A-Z,1-9生成n位随机的数来构成新的验证码. 关于生成验证码的几个小函数 range() ...

  5. background-image 和 img

    一:解决div里面的img图像宽度不变,高度不变!   超出div部分设置隐藏! 图片:1920x526 div容器: 1423x526 1. background-image:样式实现 img: 标 ...

  6. 【转】从零开始编写自己的C#框架(7)——需求分析

    转自:http://www.cnblogs.com/EmptyFS/p/3653934.html 本章内容虽然叫“需求分析”,实际上关于具体的需求分析操作步骤并没有深入去写,因为细化的话那将是一本厚厚 ...

  7. SQL Server 2008 维护计划实现数据库备份

    SQL Server 2008 维护计划实现数据库备份(最佳实践) 2013-08-29 09:08 by 听风吹雨, 173 阅读, 2 评论, 收藏, 编辑 一.背景 之前写过一篇关于备份的文章: ...

  8. SQL Server 2008 维护计划实现数据库备份(最佳实践)

    一.背景 之前写过一篇关于备份的文章:SQL Server 维护计划实现数据库备份,上面文章使用完整备份和差异备份基本上能解决数据库备份的问题,但是为了保障数据更加安全,我们需要再次完善我们的备份计划 ...

  9. Linux 中 Windows 中文乱码

    Linux 下 Windows 源代码中文乱码 由于 windows 和 linux 对文本的编码方式不同,所以经常会有 windows 中生成的文本在 linux 中打开乱码的情况. 比如: 我面临 ...

随机推荐

  1. 深入理解URL

    URI(Universal Resource Identifier)通常由三部分组成: ①访问资源的命名机制: ②存放资源的主机名: ③资源自身的名称,由路径表示. 如下面的URI:http://ww ...

  2. .NET Core Web 应用部署到 Docker 中运行

    环境介绍 : 虚拟机:VirtualBox 5.1.6 系 统:Ubuntu 16.04.1 LTS 系统准备完成后可以使用 sudo apt-get udpate 和 sudo apt-get up ...

  3. Arcgis Server发布服务

    提到Arcgis Server 服务的发布,做起来貌似很简单,就算电脑再卡,只要鼠标还能点,一个小时肯定能搞定,但是当你遇到问题的时候,就头大了,也许搞上个一两天都摸不着头脑,最后你采取的措施可能是一 ...

  4. [转]Android音频底层调试-基于tinyalsa

    http://blog.csdn.net/kangear/article/details/38139669 [-] 编译tinyalsa配套工具 查看当前系统的声卡 tinymix查看混响器 使用ti ...

  5. Calendar /String /Date 转换

    Calendar 转化 String Calendar calendat = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDate ...

  6. Cdnbes负载均衡的权重用法解释

    (1)相同域名添加两条记录,解析不同的ip,可以设置权重,比如权重2,就意思占百分之20 ,数字越大,优先级越大 (2)这个hash 如果用户访问的源是挂掉的.会去第二个源

  7. VPN服务器是什么?

    可能很多人听到VPN的第一感觉是它是一个FQ的工具,然而并不是酱紫的. 虚拟专用网(Virtual Private Network,简称VPN),是一种常用于连接中.大型企业或团体与团体间的私人网络的 ...

  8. linux命令(1):ls命令

    ls命令是linux下最常用的命令. ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看lin ...

  9. MSSql Server 索引'uq_f_userName' 依赖于 列'f_userName'。由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN f_userName 失败

    --需求有变,需要往t_login表的f_userName字段添加外国人名,之前设置的varchar(10)不够,商议决定改成varchar(30),执行的时候,提示消息 索引'uq_f_userNa ...

  10. PHP移动文件指针ftell()、fseek()、rewind()总结

    在对文件进行读写过程中,有时需要在文件中跳转.同不同位置读取,以及将数据写入到不同的位置.例如,使用文件模拟数据库保存数据,就需要移动文件指针.指针的位置是以从文件头开始的字节数度量的,默认以不同模式 ...