徐 旭 劉亞靜 董洪新
(1.河北聯(lián)合大學(xué)礦業(yè)工程學(xué)院,河北 唐山 063009; 2.山東科技大學(xué)測繪科學(xué)與工程學(xué)院,山東 青島 266590)
隨著我國經(jīng)濟(jì)的快速發(fā)展,基礎(chǔ)設(shè)施建設(shè)也進(jìn)入一個高峰期,基坑開挖作為建筑工程的一部分是施工人員必須經(jīng)常面對的一大課題?;娱_挖必然要引起變形,基坑變形的監(jiān)測、預(yù)測成為基坑工程施工設(shè)計重點解決的問題之一。根據(jù)目前文獻(xiàn)資料,國內(nèi)基坑變形監(jiān)測分析系統(tǒng)方面的研究大部分還處在監(jiān)測數(shù)據(jù)管理系統(tǒng)的階段,在基坑變形監(jiān)測的可視化表達(dá)和管理方面研究還比較欠缺[1]。論文著重基于VB和Matlab建立一個基坑變形監(jiān)測的系統(tǒng)。
系統(tǒng)以現(xiàn)有的沉降項目為工程背景,在WINDOWS XP系統(tǒng)環(huán)境下,采用比較簡單的面向?qū)ο蟮某绦蛘Z言Visual Basic及Excel和MATLAB為輔助工具來開發(fā)的。在系統(tǒng)的編譯過程中,利用現(xiàn)有比較成熟的函數(shù)模型建模。系統(tǒng)可以以全自動數(shù)據(jù)處理的方式對基坑變形數(shù)據(jù)調(diào)入、粗差探測及剔除、平差處理、繪制沉降圖、成果輸出等功能。該系統(tǒng)減少人工干預(yù)可能產(chǎn)生的錯誤,在實際工作中可以提高測量的精度和準(zhǔn)確性,減少工作量,使現(xiàn)場工作人員能更便捷的了解和掌握基坑的沉降狀況[2]。
一個良好的數(shù)據(jù)處理及管理程序設(shè)計必須對用戶的需求進(jìn)行調(diào)查分析,使開發(fā)出來的數(shù)據(jù)處理程序盡可能的滿足用戶的需求。本程序設(shè)計包括:數(shù)據(jù)導(dǎo)入與存儲、粗差剔除、平差處理、數(shù)據(jù)解算、曲線繪制、成果輸出、進(jìn)行預(yù)測。
系統(tǒng)完成后應(yīng)具備數(shù)據(jù)調(diào)入、粗差探測及剔除、平差處理、繪制沉降圖、成果輸出等功能。該系統(tǒng)實現(xiàn)全自動數(shù)據(jù)處理,減少了人工干預(yù)可能產(chǎn)生的錯誤。在實際工作中提高測量的精度和準(zhǔn)確性,減少了勞動量,能更便捷的了解和掌握基坑的沉降狀況。
系統(tǒng)設(shè)計是以計算機(jī)技術(shù)為基礎(chǔ)、軟件工程原理為基本依據(jù)來進(jìn)行設(shè)計的,另外,系統(tǒng)還要依據(jù)沉降觀測所采集到的實際數(shù)據(jù),設(shè)計出沉降觀測數(shù)據(jù)處理系統(tǒng)的總體的技術(shù)路線,如圖1所示。
圖1 系統(tǒng)總體框架圖
1)系統(tǒng)功能設(shè)計。本程序設(shè)計的主要研究內(nèi)容是設(shè)計并開發(fā)基于VB與MATLAB基坑沉降數(shù)據(jù)處理程序,是以VB為開發(fā)的操作平臺,以MATLAB和Excel為輔助工具進(jìn)行開發(fā)的。其主要分為以下六部分:
a.數(shù)據(jù)的錄入。在 VB中采用MSFlexGrid控件接收數(shù)據(jù),MSFlexGrid用來接收直接導(dǎo)入的Excel數(shù)據(jù)或是手工直接輸入的數(shù)據(jù),Excel中按一定格式存儲的數(shù)據(jù),數(shù)據(jù)為各觀測點的高差,必須由已知開始按觀測路線的順時針方向進(jìn)行輸入。界面上方的文本框用來輸入已知點和觀測點之間的距離,必須由已知開始按觀測路線的順時針方向進(jìn)行輸入,并將之依次添加進(jìn)ComboBox中去[3]。b.粗差剔除。粗差對基坑沉降數(shù)據(jù)的處理和分析的結(jié)果帶來很大的影響,常常做出錯誤的判斷,本程序設(shè)計首先采用沉降觀測的閉合差進(jìn)行粗大誤差的判斷,然后再采用拉達(dá)準(zhǔn)則(n>10)進(jìn)行判斷,對于不滿足拉達(dá)準(zhǔn)則的數(shù)據(jù)給予剔除[4,5]。c.數(shù)據(jù)平差。雖然VB的界面美觀,操作方便、簡單,但VB對矩陣的運算非常的不方便,一般要編寫函數(shù)代碼,其過程繁瑣、困難且容易出錯。而MATLAB對矩陣的各種計算、圖像的繪制十分簡單快捷。因此,在VB的操作平臺下調(diào)用MATLAB進(jìn)行沉降數(shù)據(jù)的平差計算是非常方便、實用的。MATLAB從VB提取矩陣數(shù)據(jù):利用PutFull Matrix方法將要提取的數(shù)組bb(),q(),g1()傳送至MATLAB中的三個矩陣變量中。然后通過 Execute(Command as String)方法調(diào)用MATLAB執(zhí)行一條 Command字符串決定的MATLAB命令計算Naa、常數(shù)項K和改正數(shù)V。MATLAB將計算結(jié)果還原到VB數(shù)組中:利用GetFull Matrix方法將上面計算所得數(shù)據(jù)Naa、改正數(shù)V傳送到VB程序的數(shù)組s1(),s3()中,計算未知點的改正高程[6,7]。d.沉降量解算。對基坑的沉降進(jìn)行分析和預(yù)測時,要從沉降的兩方面入手,即:本次沉降和累計沉降。本次沉降是按觀測時間順序后一次觀測減前一次觀測。累計沉降量是所有觀測本次沉降量的代數(shù)和。e.沉降量圖形繪制。對觀測點的各期的沉降量以曲線的形式繪制出來,可以使工作人員更清晰的看出基坑沉降的走勢,從而做出更加準(zhǔn)確的分析。本程序設(shè)計沉降曲線圖包括:總累計沉降圖、總本次沉降圖、單點累計沉降圖、單點本次沉降圖??偫塾嫵两祱D:把所有點的累計沉降量的曲線圖繪制到同一個圖幅中??偙敬纬两祱D:把所有點的本次沉降量的曲線圖繪制到同一個圖幅中。單點累計沉降圖:只把一個點的累計沉降量的曲線圖繪制到一個圖幅中。單點本次沉降圖:只把一個點的本次沉降量的曲線圖繪制到一個圖幅中。f.成果輸出。把數(shù)據(jù)處理的最終結(jié)果、處理過程中的數(shù)據(jù)顯示窗體上并保存到指定文件內(nèi),進(jìn)而能輸出數(shù)據(jù)處理報告,數(shù)據(jù)既可以輸出到Excel電子表格內(nèi),也可以輸出到txt文檔中。數(shù)據(jù)處理報告包括導(dǎo)入的數(shù)據(jù)、剔除粗差后的數(shù)據(jù)、平差后的數(shù)據(jù)以及沉降量結(jié)算后的數(shù)據(jù)等,數(shù)據(jù)處理報告以txt文檔的形式輸出。沉降量圖形分析可以從圖形對話框中進(jìn)行保存和輸出。
2)數(shù)據(jù)文件的設(shè)計。數(shù)據(jù)文件是基坑變形監(jiān)測系統(tǒng)的核心部分,根據(jù)系統(tǒng)的需要和實際操作的要求,本系統(tǒng)創(chuàng)建的沉降觀測記錄表分為觀測時間、點名和觀測值三部分。其結(jié)構(gòu)見表1。
表1 沉降觀測記錄表
系統(tǒng)運用ActiveX部件建立VB與Excel的鏈接,MATLAB利用PutFull Matrix方法從VB提取矩陣數(shù)據(jù),運算后再利用GetFull Matrix方法將計算所得數(shù)據(jù)傳送到VB程序,最后利用MATLAB中 plot函數(shù)繪制成圖[8,9]。
Set matlabobject=CreateObject("matlab.application")′創(chuàng)建MATLAB引用路徑
strmat="h=actxserver(′matlab.aplication′);Set(h,visible,0)"
matlabobject.Execute(strmat)′利用MATLAB繪制總本次沉降圖
strmat="x=["& x& "];y=[" & y& "];" & "plot(x,y,′linewidth′,2);set(gca,′XTickLabel′,{" & a & "});legend(" &m & ");grid on;xlabel(′觀測日期′);ylabel(′總累計沉降量(mm)′);title(′總累計沉降圖′)"
現(xiàn)以遷安某基坑的沉降觀測的數(shù)據(jù)處理為例,說明該程序的使用過程,并對該程序進(jìn)行鑒定。
打開程序,點擊“歡迎進(jìn)入系統(tǒng)”,進(jìn)入數(shù)據(jù)錄入界面,在“數(shù)據(jù)錄入”界面內(nèi)點擊“文件→打開”,選擇一固定格式輸入的Excel數(shù)據(jù)進(jìn)行數(shù)據(jù)的導(dǎo)入,也可以手工直接輸入,但已知高程和點間的距離必須手工輸入,其所輸數(shù)據(jù)均從已知點開始順時針方向依次輸入。數(shù)據(jù)錄入完后,點擊菜單上的“粗差剔除”,對數(shù)據(jù)進(jìn)行粗差剔除,進(jìn)入“數(shù)據(jù)平差”界面,在數(shù)據(jù)平差中點擊“數(shù)據(jù)平差”,對數(shù)據(jù)進(jìn)行平差,并解算出各期觀測中各觀測點的高程,進(jìn)入“數(shù)據(jù)結(jié)算”界面,在進(jìn)入“數(shù)據(jù)結(jié)算”界面后,點擊“數(shù)據(jù)分析—沉降解算”計算沉降量,進(jìn)入“繪圖分析”界面。
在“繪圖分析”界面內(nèi)點擊“數(shù)據(jù)分析總累計沉降圖”“數(shù)據(jù)分析總本次沉降圖”,繪制“總累計沉降圖”和“總本次沉降圖”,如圖2,圖3所示。
圖2 總累計沉降圖
圖3 總本次沉降圖
選擇“觀測點號”可以得到單點的點的沉降觀測數(shù)據(jù),點擊“數(shù)據(jù)分析—單點累計沉降圖”“數(shù)據(jù)分析—單點本次沉降圖”。另外,在圖上點擊“Edit-Copy Figure”,可以將圖片進(jìn)行復(fù)制并保存在Word文本中。點擊“成果輸出—成果顯示”,把對數(shù)據(jù)處理的成果顯示在界面上。點擊“成果輸出—輸出報告”將成果保存在txt文檔。
從圖上可以看出基坑沒出現(xiàn)較大的變形,符合規(guī)范的要求屬于正常的沉降。系統(tǒng)完成后具備數(shù)據(jù)調(diào)入、粗差探測及剔除、平差處理、繪制沉降圖、成果輸出等功能。使用者可以從圖上更直觀的觀察到基坑每次的變化量,可以清晰地得到變形規(guī)律,為優(yōu)化基坑施工方案指導(dǎo)類似工程提供有效的技術(shù)支持。
系統(tǒng)以VB為開發(fā)平臺,用MATLAB模塊輔助計算功能,實現(xiàn)了具有數(shù)據(jù)粗差剔除、平差、沉降量解算與出圖一體化的變形監(jiān)測系統(tǒng)。系統(tǒng)在粗差探測和沉降繪圖分析方面做了主要的研究,不但保證了數(shù)據(jù)的正確性,而且還使沉降量的預(yù)測變得更為有效。對提高測量的精度、可靠性,以及變形監(jiān)測安全方面都有十分重要的意義。
[1] 黃聲享.變形監(jiān)測數(shù)據(jù)處理[M].武漢:武漢大學(xué)出版社,2003.
[2] 徐惠蓮,張紹春.高層建筑沉降監(jiān)測與觀測數(shù)據(jù)綜合分析[J].西安工程學(xué)院學(xué)報,1999,21(2):64-66.
[3] 蔣加伏,張林峰.Visual Basic程序設(shè)計教程[M].北京:北京郵電大學(xué)出版社,2009.
[4] 楊建潮.測量誤差中粗大誤差的判斷與處理[J].計量與測試技術(shù),2004(69):33.
[5] 楊茂興.小樣本容量測量數(shù)據(jù)中粗差的剔除[J].計量與測試技術(shù),2005,32(1):27-28.
[6] 譚 炎,張凌燕.MATLAB與VB混合編程技術(shù)研究[J].軟件時空,2006,22(5):247-249.
[7] 趙毅君,李 立,邱 泓.基于VB和MATLAB混合編程的可視化數(shù)據(jù)采集與處理軟件的研究[J].湖南工程學(xué)院學(xué)報,2008,18(1):1-4.
[8] 王素立,高 潔,孫新德.MATLAB混合編程與工程應(yīng)用[M].北京:清華出版社,2008.
[9] 盧 振,曹 屹,范 永.基于VB與MATLAB混合編程數(shù)據(jù)庫圖形顯示方法[J].制導(dǎo)與引信,2009,30(3):36-40.