APP下载

基于JAVA和MATLAB的线路工程坐标计算程序设计

2018-03-01金蕾南有杰陈凯红岳迎春

绿色科技 2018年10期
关键词:MATLAB软件Java语言

金蕾 南有杰 陈凯红 岳迎春

摘要:结合MATLAB数值计算能力和JAVA的多线程网络编程能力,开发出了具有线路工程放样数据计算功能的WEB程序。该程序无需客户端,实现了多程序设计用户通过浏览器访问指定地址即可。

关键词:线路工程放样数据计算;MATLAB软件;JAVA语言;混合编程

中图分类号:TU997

文献标识码:A

文章编号:1674-9944(2018)10-0225-03

1引言

线路工程由直线和曲线构成,放样前要计算线路细部点坐标,这些坐标计算可用编程计算器或软件处理。计算器内存小,计算效率低且不易完成复杂计算;软件有GPS系统软件、ARCGIS软件、AUTO-CAD软件等,这些软件中都有一些内置功能模块能实现计算,但它们的共性是计算模式固定,缺少灵活性,且通用性和移植性很差,对运行环境要求苛刻;而类似互联网上的一些小型程序安装包,因易感染BUG不放心使用。为此开发具有移植性、通用性的软件有一定实际应用价值。

MATLAB具有高性能数值计算能力,JAVA具备多线程网络编程能力,结合二者的特点开发出一款具有线路工程坐标计算功能的WEB程序,部署在自建服务器上,实现多程序设计用户通过浏览器按指定地址异步访问,无需客户端,程序通用、方便、安全可靠,解决了以前一些方法应用中存在的问题。

2程序设计原理

2.1语言介绍

MATLAB是由MathWork公司推出的一種具有高性能的数值计算功能和可视化的软件,是目前在科研领域和工程界中较为流行的计算工具。它集矩阵计算、符号运算、数值计算等功能于一体,并且附带有针对不同领域的MATLAB工具箱,为各个领域的应用提供了极大便利。该编程语言语法简单,功能强大。

JAVA是由SUN公司发布的一种面向对象的程序设计语言,在数据处理和分析方面的能力不足,但其语言本身安全性较高,拥有MATLAB所不具备的网络编程与多线程功能。

2.2程序设计思路

利用浏览器进行数据的计算,需要用户页面,后台的准备。基于JAVA、MATLAB两种优势互补的语言来进行软件设计。利用分层结构进行软件开发,不同的层负责不同的功能。显示层负责与用户的交互,业务逻辑层负责数据的处理计算。显示层与业务逻辑层之间的控制器负责数据封装,以便在JAVA中更好地使用这些数据,方便数据在浏览器服务器之间传输。程序流程图见图1。

2.2.1用户访问的页面程序设计

利用HTML技术与JSP技术对用户界面进行设计,使用户界面简洁易操作。用户访问界面见图2。根据程序的设计要求,需要用户输入的起算数据为:曲线类型(圆曲线,缓和曲线);曲线偏转方向(左偏,右偏);坐标系的选择(假定坐标系,国家坐标系);曲线转角a,圆曲线半径R,细部点间距h,缓和曲线长l,交点里程桩号K;交点对应的施工坐标系坐标以及曲线坐标系的旋转角度。

2.2.2控制器及业务逻辑层

控制器及业务逻辑层同属于后台。控制器利用JAVA的多线程和网络编程优点,完成页面跳转及数据传输。首先解析并封装来自浏览器的数据,然后将数据传人逻辑层,将数据储存到域对象中供JSP读取,最后利用JAVA的API工厂进行JAVA与MATLAB的数据传输,以便后续访问中可以快速显示结果,提升服务器的运行效率。

业务逻辑层计算在MATLAB中进行,可完成下面三方面的任务:封装参与解算所需的参数;调用MAT-LAB并获得返回值,封装返回值并返回到控制器。

对用户的选择进行判断,根据判断结果来封装不同的数据到数组之中。

例如:如果是进行圆曲线的计算且使用假定坐标系,则传人参数为R(曲线半径)、a(线路偏角)、h(细部点点距)、JD(交点里程)和px(线路偏向)。

封装过程:

/**圆曲线封装R,a,h,JD,px为double[]基本类型*/

其他情况的封装过程与此过程类似。

2.2.3在MATLAB中计算放样数据

线路工程放样的主要任务是将图纸上的设计线路的形状、位置、宽度与高低在施工现场标示出来,用来作为线路施工的依据。根据工程类型的不同,其放样工作也有所不同。

道路中线作为一条曲线,在规划过程中通常有以下六种曲线形式:圆曲线,有缓和曲线的圆曲线,回头曲线,复曲线,立交圆曲线,有非对称缓和曲线的圆曲线。每种曲线形式所对应的数据计算的算法都不相同。下面列出有缓和曲线的圆曲线计算:

(1)曲线要素计算。

(2)细部点坐标的计算。

缓和曲线段计算:圆曲线段计算:

(3)里程计算。

(4)坐标转换(由曲线坐标系转换为施工坐标系)。

Xi=Xo+X'iCOSa-Y'isina

yi=YD+X'isina+Y'iCOSa

以上算法在MATLAB中实现,由于篇幅有限,下面仅列出坐标转换部分。

function[xi,yi]=zuobiao(x,y,a,xO,y0)

%zuobiao此函数负责坐标的转换

%坐标转换,输入参数为(x,y,a,x0,y0)

2.2.4服务器的搭建

Tomcat程序属于Apache软件基金会(ApacheSoftware Foundation)Jakarta项目中的一个核心项目。由于Tomcat的性能稳定,技术先进,而且还是免费开源,成为了目前流行的Web应用服务器。

部署Tomcat服务器分为以下几个步骤:获取Tomcat服务器程序;上传文件至Tomcat服务器;设置服务器;启动服务器。

3案例

有1带有缓和曲线的对称,参数见表1。

第一段缓和曲线半径R=700m,转角a=0.643183,缓和曲线长度1=90m,交点里程KO+584,为展示方便细部点点距设定为30m。涉及到坐标转换:旋角a=2.2104862,X=494421,Y=446400。

数据输入界面见图3,输出结果如图4。

程序运行稳定,使用方便。经过与CASS计算值和计算器计算值比对,计算数据正确、可靠。

4结语

针对现有的线路工程放样数据计算程序存在的问题,给出了利用B/S结构进行开发的方案。该方案进行了软件的分层设计,用MATLAB实现平曲线与竖曲线的计算,根据用户选择进行输入与输出,实现了免客户端、免系统环境支持的问题,应用方便,通用性好。经过多数据运行检验,程序可靠。

参考文献:

[1]王永弟.Matlab在测量数据处理教学中的应用[J].地理空间信息,2013(6):169~170.

[2]任文杰,王伟,马松辉,等.MATLAB和JAVA的混合编程研究实现[J].测控技术,2009,28(1):77~79.

[3]李青岳.陈永奇.工程测量学[M].北京:测绘出版社,2008:174.

[4]高张.康小军.提高Tomcat服务器运行性能的研究[J].计算机与数字工程,2008,36(10):203~205.

猜你喜欢

MATLAB软件Java语言
MATLAB软件在数学模型课程中的应用
基于神经网络对CFRP砼梁的可靠度分析
磁性材料磁化曲线和磁滞回线的Matlab绘制与拟合
基于Android平台的健康医疗APP设计与开发
太阳影长的参数模型研究
计算机软件开发中的JAVA编程语言分析
用户隐私保护之手机密码保险箱
Matlab符号函数绘图在普通物理教学中的应用
MATLAB软件可视化效果和数值计算在高等数学学习中的应用
基于Java语言的手机软件开发技术分析