系统
曾威;杨建东;凌宇
【摘 要】结合面向对象编程的Java语言和具有强大数值计算功能的Matlab语言,阐述了使用Java语言与Matlab混合编程的基本方法.基于建立的水泵水轮机全特性曲线数据库,利用Matlab实现了任意比转速全特性的构造方法.将Matlab运行环境下的m文件封装到Java虚拟机上的主函数中,编制出了面向对象的全特性构造软件系统.就具体的工程实际案例,利用该系统构造得到某水泵水轮机的全特性曲线,表明了本文混合编程可靠性.构造结果与实际结果进行对比,表明系统采用的构造方法的正确性.
【期刊名称】《大电机技术》 【年(卷),期】2014(000)004 【总页数】5页(P55-58,76)
【关键词】Java;Maflab;联合编程;水泵水轮机;全特性曲线 【作 者】曾威;杨建东;凌宇
【作者单位】武汉大学水资源与水电工程科学国家重点实验室,武汉430072;武汉大学水资源与水电工程科学国家重点实验室,武汉430072;武汉大学测绘遥感信息工程国家重点实验室,武汉430072 【正文语种】中 文
【中图分类】TV734.1;TP311.1
抽水蓄能电站具有储能发电功能,有效调节了电力系统发供用的动态平衡问题,得到了大力的发展[1]。该类电站运行方式的变换十分频繁,故其过渡过程直接影响电站安全稳定运行。水泵水轮机是抽水蓄能电站的关键性设备,其全特性是抽水蓄能电站设计的重要资料,同时也是水力过渡过程计算中最重要的边界条件。然而在抽水蓄能电站可行性设计阶段、招标设计阶段,水泵水轮机真机全特性曲线一般无法确定,故很多情况下,调节保证计算只能套用其他水泵水轮机的全特性曲线。但是由于国内抽水蓄能电站的数目有限,一般设计院和科研单位所能获取的全特性曲线数据也是十分有限。故有必要通过一定的数学方法和计算机程序来预测全特性曲线。
Matlab强大的数值计算功能可以很好将全特性构造的方法转化为程序代码,但是Matlab可视化编程能力很低。基于这种考虑,采用Matlab与其他面向对象的程序进行交互可以更好的实现对全特性构造软件系统的设计。文献[2],[3]就是采用这种方法实现了水轮机特性曲线的变换和其他相关处理。
利用Java语言对于一些较为复杂的数值计算程序编程十分繁琐,编程效率极低。但Java具有跨平台性、可移植性等优点,故可以利用Java对Matlab编程进行互补。文献[4]探讨了Java和Matlab混合编程的基本方法和原理。
根据所介绍的Java和Matlab各自的优缺点,本软件系统设计时,两种程序承担不同的设计任务。其中在Java虚拟机(JVM)上完成对系统界面和组件的设计,在Matlab运行环境(MCR)中完成系统功能所涉及的计算和绘图。其中,Java主函数操控Matlab程序,而Matlab程序所处理的数据需要传递到Java主函数进行下一步的计算。Java和Matlab交互的基本原理如图1所示。
在系统中,Java程序访问Matlab是通过对象模型COM(Common Object Model)实现的。它是不同的应用程序和语言之间共享二进制代码的代码标准,不依赖于任何语言和操作系统。在Matlab中构建COM需要使用Combuilder完
成Matlab算法到COM的转换。
将Matlab函数包装成一个或多个Java类,从而形成一个Java组件或被Java程序调用。具体表现为将Matlab环境下的m文件生成Java环境中的jar文件。在Java中引入Matlab相关包及建立的包和类,即可在Java类文件中使用jar文件。 由于不同编程语言对数据定义的方式不一致,因此在Java和Matlab混合编程时就必须考虑数据间的传递问题。Matlab的应用程序接口仅仅只能处理mxArray结构体,而在Java中不能创建一个新的数据类型与之匹配,所以两者之间的数据传递只能通过Matlab提供的指针变量进行交互[2]。
水泵水轮机的特性一般采用单位流量、单位力矩与单位转速、相对开度的相关关系来表达,如图2所示。其中比转速是代表水泵水轮机特性的最重要特征参数,定义为:
其中,下标N表示水轮机工作区最高效率点所对应的参数,为效率。
本系统收集了25套全特性曲线,比转速覆盖范围为70-180(m:kw)。随比转速的变化,全特性曲线的变化规律十分明显。当两水泵水轮机的比转速相近时,其全特性曲线也十分相近。基于这一规律,利用数学表达方法表示出全特性曲线随比转速的变化规律,从而可获得任意比转速的全特性曲线。
为方便构造过程中的数学运算,按照象限将全特性曲线分为图2中的八个区间,其中分界线与全特性曲线交点的连线定义为特征交线,图中用圆圈表示。 采用表1中的拟合模型,分别对所收集的各套全特性曲线的各条特征交线进行数值拟合。每次拟合可获得各条特征交线的拟合系数a、b(或a、b、c)。对于全特性曲线中的一条特定特征交线,其拟合系数可以建立与比转速之间的相关关系,即拟合系数均可以表示为比转速ns的表达式,带入数值拟合模型即可得到任意比转速的特征交线方程。
水泵水轮机全特性曲线在不同的象限其变化形式有很大的差异,一、二、五、六区
间特性曲线很大一部分均近似线性变化,其他区间均为弧形变化。针对这种差异,对于不同区间的特性曲线采用不同的变换方法。为解决分区带来的各区曲线的耦合问题,将特性曲线标准化处理,即将其分界线的交点转化为1(特性曲线上点的横、纵坐标分别除以横、纵分界线上的数值)。
特性曲线在反S区间和驼峰区的多值现象阻碍了数学运算,故必须消除。线性变化区间特性曲线可交换横、纵坐标,弧形变化区间可将曲线以原点为中心转化到极坐标,根据这种数学变换,即可消除多值现象。
变换后的开度线是平面上的多条曲线,建立以参变量和X为坐标轴的坐标系,加密开度线后,即可得统一的平面网格,如图3所示。
对多组全特性数据进行变换,并按比转速大小叠加数据得空间网格,如图3所示。采用四维插值方式[5],[6]可以得任意比转速对应的平面网格。
将平面网格转化开度线,在各区按照全特性变换的方法进行对应的逆操作。并利用特征交线构造结果将特性曲线沿分界线拉伸(标准化处理的逆过程),即可将其转化为实际的全特性曲线。
按照上一章内容,水泵水轮机全特性构造软件系统可以对应分为四大模块。图4给出采用Java语言编写的软件主界面,其中包含了四个模块,分别为:数据读入、特征提取、全特性变换和全特性构造。
对应于全特性构造的方法,软件设计流程与思路可用图5中的框图概括,具体包括:
(1)进入模块一,读入某一套全特性曲线数据,根据所读入的数据运算数据所包含开度以及每条开度的长度,分析结果供后面模块调用。软件也可显示平面坐标下的特性曲线和三维坐标下的空间特性曲线。
(2)进入模块二,根据读入的全特性曲线数据,提取全特性曲线的特征点(包括高效点和高效点所在开度与坐标轴的交点)、特征交线。并对特征交线拟合处理,
得到拟合参数。
(3)进入模块三,根据读入的全特性曲线数据,提取分区后的特性曲线,并对特性曲线在平面坐标中进行变换。根据变换结果按照统一标准(统一的相对开度和X值)插值加密得到固定平面网格节点的数据。
(4)循环操作前三模块,直到对所收集的所有数据均进行运算后,再进入模块四。根据前三模块的工作可以获取包含不同比转速全特性曲线的特征点、特征交线、各区间变换后特性曲线的数据库。输入待插值比转速和待插值开度,即可插值得到全特性曲线。
以比转速124.6(k:mw)的水泵水轮机为例,利用本文所设计的系统,构造各区的特性曲线,并自动耦合各区曲线,结果如图6所示。表明本文采用Java与Matlab混合编程方式的正确性。与实测数据的变换结果进行了对比,得到非常高的相关性。说明本文所采用构造方法具有较高精度,构造数据完全可以用于抽水蓄能电站初期设计。
(1)本文探讨了Java语言和Matlab语言混合编程的有关问题,利用Matlab强大的数值计算功能实现了对全特性构造过程中的各种复杂插值、拟合及其他数学运算,同时采用Java面向对象的性质,封装了Matlab运行环境下的m文件。实现了将这两种语言联合运行的方式应用到水泵水轮机全特性构造之中。
(2)基于建立的水泵水轮机全特性曲线数据库,本文将各组全特性数据进行拆分,分别构造了全特性曲线中的特征点、特征交线和八区间特性曲线的数据库。其中对特性曲线构造时,先对其进行数学变换,消除了其多值现象。根据数据库可以插值得到任意比转速水泵水轮机的全特性曲线。
[1] Г.И.克里夫琴科. 水电站动力装置中的过渡过程[M]. 北京: 水力出版社, 1981. [2] 唐岳灏, 杨建东. Fortran和MATLAB的混合编程在水轮机特性曲线处理中的应用[J]. 武汉大学工学版, 2002, 35(2):45-49.
[3] 齐学义, 吴江, 蔡艾江. C语言和MATLAB的混合编程在水轮机特性曲线绘制与转换中的应用 [J]. 兰州理工大学学报, 2005, 31(6):51-54.
[4] 王微,杨丽萍. Java和Matlab混合编程及其应用[J]. 长春大学学报, 2012, 22(10): 1186-1189.
[5] 唐月红, 沈庆红, 许有信. 三元二次样条函数及其计算(Ⅰ)—高维数据拟合[J]. 南京航空航天大学学报, 1996, 28(5): 614-620.
[6] 唐月红, 沈庆红, 许有信. 三元二次样条函数及其计算(Ⅱ)—计算机表示[J]. 南京航空航天大学学报, 1997, 29(1): 32-37.
[7] 石辛民, 郝整清. 基于MATLAB的实用数值计算[M]. 北京: 清华大学出版社, 2006.
曾威(1992-),男,湖北应城人,武汉大学水利水电学院,水资源与水电工程科学国家重点实验室,主要从事水泵水轮机特性和抽水蓄能电站过渡过程研究,硕士研究生
因篇幅问题不能全部显示,请点此查看更多更全内容