吳 正,邱利群,陳永寧,陳富榮,陳 超,萬 凱
(1.安徽省地質(zhì)調(diào)查院,安徽 合肥 230001;2.中國地質(zhì)大學(xué) 信息工程學(xué)院,湖北 武漢 430074)
高速公路軟基沉降預(yù)測系統(tǒng)的設(shè)計與實現(xiàn)
吳 正1,邱利群2,陳永寧1,陳富榮1,陳 超2,萬 凱2
(1.安徽省地質(zhì)調(diào)查院,安徽 合肥 230001;2.中國地質(zhì)大學(xué) 信息工程學(xué)院,湖北 武漢 430074)

在高速公路軟基監(jiān)測工作中,需要根據(jù)不同的施工階段和工程條件,選擇合適的預(yù)測模型對軟基沉降量進行預(yù)測。介紹了系統(tǒng)的開發(fā)語言與環(huán)境,對高速公路軟基沉降預(yù)測系統(tǒng)進行功能設(shè)計及代碼編寫。最后結(jié)合工程實例,檢驗該系統(tǒng)是否能夠滿足軟基沉降預(yù)測的要求。實踐表明,該系統(tǒng)具有較好的實用性。
高速公路軟基;沉降預(yù)測;系統(tǒng)設(shè)計
在高速公路軟基沉降監(jiān)測過程中,經(jīng)常需要對某個監(jiān)測點或者某個監(jiān)測斷面的沉降量進行預(yù)測,以判斷軟基是否穩(wěn)定,同時也為高速公路軟基處理方案、路堤填筑速率、構(gòu)筑物施工順序等提供建議[1-3]。而市場上并沒有太多軟土路基沉降預(yù)測方面的專業(yè)軟件,即使有,也是針對某項特定工程開發(fā)的。因為不同的工程條件和施工階段,需要運用不同的預(yù)測模型才能獲得準(zhǔn)確的預(yù)測結(jié)果[4],因此,如果能根據(jù)所監(jiān)測的項目情況,編寫適合本項目的預(yù)測軟件,將能為高速公路軟基沉降監(jiān)測工作提供便利[5]。本文基于Excel2003,利用VBA與Matrix集成編寫了針對某個高速公路的軟基沉降預(yù)測系統(tǒng)。
本系統(tǒng)是基于Excel2003,利用VBA與MatrixVB集成編寫的高速公路軟基沉降預(yù)測系統(tǒng),其中VBA主要是將Excel2003中的數(shù)據(jù)讀入到程序中,利用MatrixVB編寫了不等時距灰色模型GM(1,1)、拓展雙曲線、Asoaka法、三點法等預(yù)測模型的代碼,并繪制預(yù)測沉降曲線和實測沉降曲線,通過VBA,利用Excel與Word連接,將預(yù)測數(shù)據(jù)表和曲線圖輸入到Word中,從而生成預(yù)測報告[6]。
MatrixVB是由第三方(Mathtools公司)提供的COM組件,包含了大量與Matlab相似的函數(shù)與調(diào)用語法,可以加強VB內(nèi)建數(shù)學(xué)運算與圖形展示功能,其函數(shù)庫多達8種類型。在VB程序代碼中,可以像使用VB自己的函數(shù)一樣使用MatrixVB函數(shù),而且可以不依賴于Matlab的環(huán)境在Visual Basic中完成矩陣運算與圖形繪制顯示等功能。這種方法使用起來簡單,編程效率較高[7]。Excel VBA是Excel宏的編輯語言,是基于Visual Basic for Windows發(fā)展而來的,VBA提供了面向?qū)ο蟮某绦蛟O(shè)計方法,易于學(xué)習(xí)掌握。使用宏記錄器還可記錄用戶的各種操作,并轉(zhuǎn)換為VBA程序[8]。Excel VBA與Matrix連接的方法:在VBA菜單欄選擇“工具”,在下拉菜單中單擊“引用”,選中彈出的對話框中MMatrix選項,系統(tǒng)將加載MatrixVB的動態(tài)鏈接庫MMatrix.DLL[9]。
2.1 預(yù)測系統(tǒng)功能設(shè)計
系統(tǒng)主要功能介紹:
1)提供了不等時距灰色模型GM(1,1)、Asoaka法、拓展雙曲線法,三點法幾種預(yù)測模型,可以根據(jù)軟基不同的施工階段選擇合適的預(yù)測模型。
2)在預(yù)測完成后,自動計算出預(yù)測殘差和相關(guān)系數(shù),并在同一圖中繪制出預(yù)測曲線與實測沉降曲線圖。
3)根據(jù)用戶設(shè)置的報告格式,制作相應(yīng)的預(yù)測報告。預(yù)測報告中包含實測數(shù)據(jù)、預(yù)測數(shù)據(jù)、殘差、預(yù)測結(jié)果分析以及預(yù)測曲線圖。
4)系統(tǒng)提供了打印功能,可以打印監(jiān)測數(shù)據(jù)表、變形曲線圖、預(yù)測報告等。高速公路軟基沉降預(yù)測系統(tǒng)功能設(shè)計如圖1所示。

圖1 高速公路軟基沉降預(yù)測系統(tǒng)功能設(shè)計圖
2.2 程序設(shè)計
根據(jù)高速公路軟基沉降預(yù)測系統(tǒng)所設(shè)計的功能,基于Excel2003,利用VBA與Matrix集成編寫了軟基沉降預(yù)測系統(tǒng)的相關(guān)程序。所編寫的預(yù)測和繪圖程序,能預(yù)測出軟基的沉降趨勢,并可以通過繪圖程序在圖中更好地反映出來,以便及時采取相應(yīng)措施,來減小因施工帶來的危害,保證項目的順利進行。限于篇幅,本文僅列出了不等時距GM(1,1)模型的相關(guān)代碼,主要代碼及說明如下:
1)不等時距GM(1,1)模型預(yù)測程序。
Private Sub GM(1,1)_Click()
Application.Worksheets("GM(1,1)").Activate ’激活GM(1,1)預(yù)測工作表
Dim i As Integer, r As Integer
Dim s1 As Variant, s11 As Variant, t As Variant, s2 As Variant
Dim t0 As Double
Dim B As Variant, Y As Variant, u As Variant, s0 As Variant
Dim c As Variant, s3 As Variant
r = Application.CountA(Range("A:A")) – 2 ’獲取需預(yù)測的期數(shù)
s1 = zeros(r, 1): t = zeros(r, 1): s11 = zeros(r, 1)
u = zeros(r, 1): s0 = zeros(r, 1): s2 = zeros(r, 1)
B = zeros(r - 1, 2): Y = zeros(r - 1, 1): c = zeros(2, 1)
For i = 1 To r
t.r2(i, 1) = Range("A" & (i + 2)).Value
s1.r2(i, 1) = Range("B" & (i + 2)).Value
Next i
t0 = (1 / (r - 1)) * (t.r2(r, 1) - t.r2(1, 1))
For i = 1 To r
If i = 1 Or i = r Then
u.r2(i, 1) = 0: s0.r2(i, 1) = 0
Else
u.r2(i, 1) = (t.r2(i, 1) - (i - 1) * t0) / t0
s0.r2(i, 1) = u.r2(i, 1) * (s1.r2(i, 1) - s1.r2(i - 1, 1))
End If
s2.r2(i, 1) = s1.r2(i, 1) - s0.r2(i, 1)
Range("F" & (i + 2)).Value = s2.r2(i, 1)
Next i
s3 = zeros(r, 1):s3.r2(1, 1) = s2.r2(1, 1)
For i = 2 To r
s3.r2(i, 1) = s3.r2(i - 1, 1) + s2.r2(i, 1)
Next i
For i = 1 To r - 1
B.r2(i, 1) = -0.5 * (s3.r2(i, 1) + s3.r2(i + 1, 1))
B.r2(i, 2) = 1: Y.r2(i, 1) = s2.r2(i + 1, 1)
Next i
c = mtimes(mtimes(inv(mtimes(Transpose(B), B)), Transpose(B)), Y)
For i = 1 To r
s11.r2(i, 1) = (s1.r2(1, 1) - c.r2(2, 1) / c.r2(1, 1)) * Exp(-c.r2(1, 1) * t.r2(i, 1) / t0) + c.r2(2, 1) / c.r2(1, 1)
Next i
Range("C3").Value = s2.r2(1, 1): Range("D3").Value = 0
For i = 1 To r
Range("C" & (i + 2)).Value = s11.r2(i, 1) - s11.r2(i - 1, 1)
Range("D" & (i + 2)).Value = Range("C" & (i + 2)). Value - Range("B" & (i + 2)).Value
Next i
End Sub
2)不等時距GM(1,1)模型繪圖程序。
Private Sub 繪圖程序_Click()
Dim myrange As Range
Dim mychart As ChartObject
Dim r As Integer
Dim a As Worksheet
Application.Worksheets("GM(1,1)").Activate
Set a = Application.Worksheets("GM(1,1)")
With a
.ChartObjects.Delete
r = .Range("A65536").End(xlUp).Row
Set myrange = .Range("D3" & ":E" & r)
Set mychart = .ChartObjects.Add(550, 140, 400, 250)
With mychart.Chart
.ChartType = xlLineMarkers
.SetSourceData Source:=myrange, PlotBy:= xlColumns
.ApplyDataLabels ShowValue:=True
.HasTitle = True
.ChartTitle.Text = "不等時距GM(1,1)模型預(yù)測圖"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters. Text = "天數(shù)(天)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "沉降量(mm)"
With .ChartTitle.Font
.Size = 20
.ColorIndex = 3
.Name = "華文新魏"
End With
With .ChartArea.Interior
.ColorIndex = 8
.PatternColorIndex = 1
.Pattern = xlSolid
End With
With .PlotArea.Interior
.ColorIndex = 35
.PatternColorIndex = 1
End With
.SeriesCollection(1).DataLabels.Delete
.SeriesCollection(2).DataLabels.Delete
.SeriesCollection(1).XValues = "='GM(1,1)'!R3C2: R100C2"
.SeriesCollection(1).Name = "=""實測值"""
.SeriesCollection(2).XValues = "='GM(1,1)'!R3C2: R100C2"
.SeriesCollection(2).Name = "=""預(yù)測值"""
End With
End With
為了判斷某高速公路軟土路基沉降發(fā)展趨勢,現(xiàn)選取沉降監(jiān)測點K7+027CJBL在軟基施工過程的10期沉降量來對該點采用系統(tǒng)提供的不等時距GM(1,1)模型進行預(yù)測。通過對每期數(shù)據(jù)的觀測,并進行相應(yīng)計算,可以得出在不同周期內(nèi)的沉降累計值(每期的數(shù)值均是在填土之后通過前后測量計算獲得),其數(shù)值如表1所示。

表1 不等間距灰色模型GM(1,1)預(yù)測結(jié)果表
獲得以上數(shù)據(jù)后,通過編寫的程序,進行下述步驟:
1)將沉降點K7+027CJBL的各期沉降量輸入到高速公路軟土路基沉降預(yù)測系統(tǒng)中的Excel表中。
2)單擊Excel預(yù)測表中的預(yù)測按鈕,出現(xiàn)程序界面。
3)根據(jù)工程條件及施工階段選擇合適的預(yù)測模型,本文采取不等間距灰色模型GM(1,1)進行預(yù)測,預(yù)測結(jié)果如表1所示。
4)單擊“曲線繪制”按鈕,即可生成預(yù)測曲線與實測沉降曲線圖(圖2)。
5)單擊“報告”選項,即可生成預(yù)測報告。
利用預(yù)測結(jié)果計算小誤差概率為0.96,后驗差為0.24。根據(jù)模型檢驗判定標(biāo)準(zhǔn),當(dāng)小誤差概率大于0.95,后驗差大于0.35時,預(yù)測結(jié)果較好。

圖2 不等時距灰色模型GM(1,1)預(yù)測曲線與實測沉降曲線圖
不同的軟基施工階段以及不同的工程條件應(yīng)采取不同的預(yù)測模型進行預(yù)測。為滿足工程需要,基于Excel2003,利用VBA與Matrix集成開發(fā)了高速公路軟基沉降預(yù)測程序,該程序能夠在軟基不同的施工階段采取相應(yīng)的預(yù)測模型進行預(yù)測[6]。實踐表明,預(yù)測結(jié)果良好,操作簡單,能極大提高工作效率,保證項目順利進行。
[1] Ashkenazi V,Roberts G W.Experimental Monitoring of the Humber Bridge Using GPS[R]. Inst Civ Engrs, 1997
[2] Kashima S, Yanaka Y, Suzuki S,et al.Monitoring the Akashi Kaikyo Bridge: First Experiences[J].Structural Engineering International,2001(2) :120-123
[3] 李沛鴻,江鴻斌,王勁松.基于MatrixVB的測量平差程序設(shè)計與實現(xiàn)[J].北京測繪,2012(6):14-18
[4] 王漢雄,喬景順.Excel VBA在測量數(shù)據(jù)處理中的應(yīng)用[J].測繪科學(xué),2008,33(2):210-212
[5] 趙俊明,石名磊,張宏.灰色理論在高速公路軟土地基沉降預(yù)測中的應(yīng)用[J].公路交通科技,2005,22(5):56-58
[6] 汪祖民.高速公路軟土地基沉降變形監(jiān)測分析與預(yù)報[J].蘇州科技學(xué)院學(xué)報:工程技術(shù)版,2004,17(2):34-40
[7] 胡馳,吳勝倉,雷靜.高速公路路基沉降預(yù)測系統(tǒng)開發(fā)與應(yīng)用[C].第九屆建筑物改造與病害處理學(xué)術(shù)研討會,濟南, 2011
[8] 黎軍豐.公路軟土路基沉降預(yù)測方法綜述[J].科技情報開發(fā)與經(jīng)濟,2010,20(14):182-187
[9] 李輝,郝艷芬. Excel 2003 VBA辦公應(yīng)用[M].北京:人民郵
電出版社, 2006
P258
B
1672-4623(2015)02-0142-03
10.3969/j.issn.1672-4623.2015.02.050
吳正,碩士,主要從事大地測量學(xué)與測量工程方面的研究。
2014-03-27。
項目來源:國家自然科學(xué)基金資助項目(40974002);國家重大科技基礎(chǔ)設(shè)施建設(shè)資助項目(發(fā)改高技[2007]1911)。