APP下载

JAVA与MATLAB在线路工程放样数据处理中的应用

2017-05-30水梦琦

科技风 2017年13期

摘要:通过对现有线路工程放样数据常用的计算程序的弊端的分析,提出了基于Web进行开发,有效的解决了不同系统环境需要不同的客户端的问题,设计了基于该方法的作业流程。

关键词:线路工程放样;MATLAB;JAVA

现在已有的线路工程放样数据的计算程序,都集成在了GPS、 AUTOCAD、 ArcGIS等软件之中,虽然这些软件内置的线路工程放样数据计算功能也非常强大,可以根据用户需求进行差异化定制以及使用,但是有一个非常大的弊端,就是移植性太差,对运行环境的要求太苛刻。例如AUTOCAD的exe安装包在Windowns上可以运行,但是迁移到其他运行环境(如MACOS,IOS等)就无法运行了。针对这些问题,本文给出的办法是基于Web进行开发,因为各种系统运行环境虽然不同,但是都携带有浏览器。基于Web进行开发可以有效解决不同系统环境需要不同的客户端的问题,开发周期短,工作量低,而且计算过程都是在浏览器上进行。

JAVA是由SUN公司发布的一种面向对象的程序设计语言,其语言本身的安全性较高,并且拥有MATLAB所不具备的网络编程与多线程功能。但JAVA在数据处理和分析方面的能力则显得非常羸弱,当数组矩阵比较大时,这个问题就显得尤为突出。

MATLAB是由MathWork公司推出的一种具有高性能的数值计算功能和可视化的软件,它集矩阵计算、符号运算、数值计算于一体,同时还在各种不同的领域推出新的MATLAB工具箱,该编程语言的语法简单,功能强大,一条语句所具备的功能往往相当于其它高级语言之中的成百上千条语句。

一、设计思想

本文利用分层结构来进行软件开发,不同的层次负责不同的功能。显示层负责与用户的交互,业务逻辑层负责数据的处理、计算。为了使软件结构更加明了,这里我在显示层与业务逻辑层之间增加一个控制器,该控制器的功能主要是负责将用户输入的数据进行封装,例如曲线类型,曲线方向,坐标系的选择,曲线半径数据等等。封装的目的是为了在JAVA语言中更好地使用这些数据,方便数据在浏览器,服务器之间传输。显示层会根据不同的输入来显示不同的计算结果,这里采用动态网页技术。业务逻辑层负责数据的处理,这里将利用MATLAB优秀的计算能力来实现。

软件流程图

二、具体实现

(一)显示层设计

显示层的编写将利用HTML语言与JSP语言来进行设计,其中HTML页面是静态页面,用于设计显示效果,动态页面就是能根据不同的用户访问情况来显示不同的内容,本文所采用的实现方式是将HTML页面效果用JSP来实现。

(二)控制器及业务逻辑层的设计

控制器的作用是完成页面跳转以及数据传输,业务逻辑层的作用是用来处理数据。本文是应用了JAVA的多线程,网络编程优点,和MATLAB优秀的数据计算能力来完成业务的处理,所以这里我们在业务逻辑层只需要完成JAVA与MATLAB的之间的数据传输即可。

MATLAB与JAVA之间的数据传输目前存在以下三种主流方式:

1.利用COM对象实现访问。

COM 指的是通用对象模型( Common Object Model),是由Microsoft推出的一个二进制代码标准。这个标准包含规范和实现两大部分,这些规范并不依赖于任何语言和操作系统。在 Matlab 之中构建 COM 对象时需要使用Com Builder 完成 Matlab 语句到 COM 对象的转换,从而使 Java应用程序可以使用COM 对象。

2.利用CORBA实现访问。

CORBA 指的是公共对象请求代理结构 ( Common Object Request Broker Architecture) ,它是体系结构之中最清晰、最完整,跨越平台最多的构件模型。使用 CORBA 来连接 Matlab的过程十分复杂,开发效率低。

3.利用JNI技术实现访问。

JNI指的是本地编程接口( Java Native Interface) ,Matlab向 C语言提供了Matlab Engine函数,而Java则通过 JNI技术来调用这些函数,从而实现对Matlab程序的访问[4]。

以上列出了三种访问方法,本文所采用的方法是基于上述方法进行二次开发的工具类matlabcontrol Java API,这个工具类相当于一个代理,可以便捷的实现MATLAB与JAVA之间的数据访问。

(三)数据算法在MATLAB中的实现

在完成了显示层,控制层,业务逻辑层的编写之后,还剩下最后一个层次,也就是MATLAB模块的编写,该层次的作用是根据传入的数据计算应当呈现给用户的结果。根据曲线类型的不同选择不同的算法,所谓的算法即一个个的计算公式。

三、结语

本文针对现有的线路工程放样程序存在的问题,给出了利用B/S结构进行开发的解决方案,本软件实现的功能主要包括缓和曲线的计算,圆曲线的计算以及竖曲线的计算。并且在输入输出页面都有友好的提示方便使用。本文以B/S结构为基础开发的线路工程放样程序,实现了无客户端限制,无系统环境限制的可在任意能上网终端进行使用的功能。

参考文献:

[1]李金生.刘翠芝.刘岩.曲线放样数据计算的几种方法.等专科学校學报,2007,9(3):2829.

[2]任文杰.王伟.马松辉.陈怀民.MATLAB和JAVA的混合编程研究实现[J].测控技术,2009,28(01):00770079.

[3]王薇.MATLAB 的循环向量化编程方法研究.长春大学学报,2010,2:5759.

[4]王薇.杨丽萍.Java和Matlab混合编程及其应用.长春大学学报,2012,22(10):11861189.

作者简介:水梦琦(1993),女,汉族,湖北武汉人,在读研究生,研究方向:测绘工程。