金蕾 南有杰 陳凱紅 岳迎春



摘要:結合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.