吳 正,邱利群,陳永寧,陳富榮,陳 超,萬 凱
(1.安徽省地質(zhì)調(diào)查院,安徽 合肥 230001;2.中國(guó)地質(zhì)大學(xué) 信息工程學(xué)院,湖北 武漢 430074)
高速公路軟基沉降預(yù)測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
吳 正1,邱利群2,陳永寧1,陳富榮1,陳 超2,萬 凱2
(1.安徽省地質(zhì)調(diào)查院,安徽 合肥 230001;2.中國(guó)地質(zhì)大學(xué) 信息工程學(xué)院,湖北 武漢 430074)
在高速公路軟基監(jiān)測(cè)工作中,需要根據(jù)不同的施工階段和工程條件,選擇合適的預(yù)測(cè)模型對(duì)軟基沉降量進(jìn)行預(yù)測(cè)。介紹了系統(tǒng)的開發(fā)語言與環(huán)境,對(duì)高速公路軟基沉降預(yù)測(cè)系統(tǒng)進(jìn)行功能設(shè)計(jì)及代碼編寫。最后結(jié)合工程實(shí)例,檢驗(yàn)該系統(tǒng)是否能夠滿足軟基沉降預(yù)測(cè)的要求。實(shí)踐表明,該系統(tǒng)具有較好的實(shí)用性。
高速公路軟基;沉降預(yù)測(cè);系統(tǒng)設(shè)計(jì)
在高速公路軟基沉降監(jiān)測(cè)過程中,經(jīng)常需要對(duì)某個(gè)監(jiān)測(cè)點(diǎn)或者某個(gè)監(jiān)測(cè)斷面的沉降量進(jìn)行預(yù)測(cè),以判斷軟基是否穩(wěn)定,同時(shí)也為高速公路軟基處理方案、路堤填筑速率、構(gòu)筑物施工順序等提供建議[1-3]。而市場(chǎng)上并沒有太多軟土路基沉降預(yù)測(cè)方面的專業(yè)軟件,即使有,也是針對(duì)某項(xiàng)特定工程開發(fā)的。因?yàn)椴煌墓こ虠l件和施工階段,需要運(yùn)用不同的預(yù)測(cè)模型才能獲得準(zhǔn)確的預(yù)測(cè)結(jié)果[4],因此,如果能根據(jù)所監(jiān)測(cè)的項(xiàng)目情況,編寫適合本項(xiàng)目的預(yù)測(cè)軟件,將能為高速公路軟基沉降監(jiān)測(cè)工作提供便利[5]。本文基于Excel2003,利用VBA與Matrix集成編寫了針對(duì)某個(gè)高速公路的軟基沉降預(yù)測(cè)系統(tǒng)。
本系統(tǒng)是基于Excel2003,利用VBA與MatrixVB集成編寫的高速公路軟基沉降預(yù)測(cè)系統(tǒng),其中VBA主要是將Excel2003中的數(shù)據(jù)讀入到程序中,利用MatrixVB編寫了不等時(shí)距灰色模型GM(1,1)、拓展雙曲線、Asoaka法、三點(diǎn)法等預(yù)測(cè)模型的代碼,并繪制預(yù)測(cè)沉降曲線和實(shí)測(cè)沉降曲線,通過VBA,利用Excel與Word連接,將預(yù)測(cè)數(shù)據(jù)表和曲線圖輸入到Word中,從而生成預(yù)測(cè)報(bào)告[6]。
MatrixVB是由第三方(Mathtools公司)提供的COM組件,包含了大量與Matlab相似的函數(shù)與調(diào)用語法,可以加強(qiáng)VB內(nèi)建數(shù)學(xué)運(yùn)算與圖形展示功能,其函數(shù)庫(kù)多達(dá)8種類型。在VB程序代碼中,可以像使用VB自己的函數(shù)一樣使用MatrixVB函數(shù),而且可以不依賴于Matlab的環(huán)境在Visual Basic中完成矩陣運(yùn)算與圖形繪制顯示等功能。這種方法使用起來簡(jiǎn)單,編程效率較高[7]。Excel VBA是Excel宏的編輯語言,是基于Visual Basic for Windows發(fā)展而來的,VBA提供了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,易于學(xué)習(xí)掌握。使用宏記錄器還可記錄用戶的各種操作,并轉(zhuǎn)換為VBA程序[8]。Excel VBA與Matrix連接的方法:在VBA菜單欄選擇“工具”,在下拉菜單中單擊“引用”,選中彈出的對(duì)話框中MMatrix選項(xiàng),系統(tǒng)將加載MatrixVB的動(dòng)態(tài)鏈接庫(kù)MMatrix.DLL[9]。
2.1 預(yù)測(cè)系統(tǒng)功能設(shè)計(jì)
系統(tǒng)主要功能介紹:
1)提供了不等時(shí)距灰色模型GM(1,1)、Asoaka法、拓展雙曲線法,三點(diǎn)法幾種預(yù)測(cè)模型,可以根據(jù)軟基不同的施工階段選擇合適的預(yù)測(cè)模型。
2)在預(yù)測(cè)完成后,自動(dòng)計(jì)算出預(yù)測(cè)殘差和相關(guān)系數(shù),并在同一圖中繪制出預(yù)測(cè)曲線與實(shí)測(cè)沉降曲線圖。
3)根據(jù)用戶設(shè)置的報(bào)告格式,制作相應(yīng)的預(yù)測(cè)報(bào)告。預(yù)測(cè)報(bào)告中包含實(shí)測(cè)數(shù)據(jù)、預(yù)測(cè)數(shù)據(jù)、殘差、預(yù)測(cè)結(jié)果分析以及預(yù)測(cè)曲線圖。
4)系統(tǒng)提供了打印功能,可以打印監(jiān)測(cè)數(shù)據(jù)表、變形曲線圖、預(yù)測(cè)報(bào)告等。高速公路軟基沉降預(yù)測(cè)系統(tǒng)功能設(shè)計(jì)如圖1所示。
圖1 高速公路軟基沉降預(yù)測(cè)系統(tǒng)功能設(shè)計(jì)圖
2.2 程序設(shè)計(jì)
根據(jù)高速公路軟基沉降預(yù)測(cè)系統(tǒng)所設(shè)計(jì)的功能,基于Excel2003,利用VBA與Matrix集成編寫了軟基沉降預(yù)測(cè)系統(tǒng)的相關(guān)程序。所編寫的預(yù)測(cè)和繪圖程序,能預(yù)測(cè)出軟基的沉降趨勢(shì),并可以通過繪圖程序在圖中更好地反映出來,以便及時(shí)采取相應(yīng)措施,來減小因施工帶來的危害,保證項(xiàng)目的順利進(jìn)行。限于篇幅,本文僅列出了不等時(shí)距GM(1,1)模型的相關(guān)代碼,主要代碼及說明如下:
1)不等時(shí)距GM(1,1)模型預(yù)測(cè)程序。
Private Sub GM(1,1)_Click()
Application.Worksheets("GM(1,1)").Activate ’激活GM(1,1)預(yù)測(cè)工作表
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ù)測(cè)的期數(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)不等時(shí)距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 = "不等時(shí)距GM(1,1)模型預(yù)測(cè)圖"
.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 = "=""實(shí)測(cè)值"""
.SeriesCollection(2).XValues = "='GM(1,1)'!R3C2: R100C2"
.SeriesCollection(2).Name = "=""預(yù)測(cè)值"""
End With
End With
為了判斷某高速公路軟土路基沉降發(fā)展趨勢(shì),現(xiàn)選取沉降監(jiān)測(cè)點(diǎn)K7+027CJBL在軟基施工過程的10期沉降量來對(duì)該點(diǎn)采用系統(tǒng)提供的不等時(shí)距GM(1,1)模型進(jìn)行預(yù)測(cè)。通過對(duì)每期數(shù)據(jù)的觀測(cè),并進(jìn)行相應(yīng)計(jì)算,可以得出在不同周期內(nèi)的沉降累計(jì)值(每期的數(shù)值均是在填土之后通過前后測(cè)量計(jì)算獲得),其數(shù)值如表1所示。
表1 不等間距灰色模型GM(1,1)預(yù)測(cè)結(jié)果表
獲得以上數(shù)據(jù)后,通過編寫的程序,進(jìn)行下述步驟:
1)將沉降點(diǎn)K7+027CJBL的各期沉降量輸入到高速公路軟土路基沉降預(yù)測(cè)系統(tǒng)中的Excel表中。
2)單擊Excel預(yù)測(cè)表中的預(yù)測(cè)按鈕,出現(xiàn)程序界面。
3)根據(jù)工程條件及施工階段選擇合適的預(yù)測(cè)模型,本文采取不等間距灰色模型GM(1,1)進(jìn)行預(yù)測(cè),預(yù)測(cè)結(jié)果如表1所示。
4)單擊“曲線繪制”按鈕,即可生成預(yù)測(cè)曲線與實(shí)測(cè)沉降曲線圖(圖2)。
5)單擊“報(bào)告”選項(xiàng),即可生成預(yù)測(cè)報(bào)告。
利用預(yù)測(cè)結(jié)果計(jì)算小誤差概率為0.96,后驗(yàn)差為0.24。根據(jù)模型檢驗(yàn)判定標(biāo)準(zhǔn),當(dāng)小誤差概率大于0.95,后驗(yàn)差大于0.35時(shí),預(yù)測(cè)結(jié)果較好。
圖2 不等時(shí)距灰色模型GM(1,1)預(yù)測(cè)曲線與實(shí)測(cè)沉降曲線圖
不同的軟基施工階段以及不同的工程條件應(yīng)采取不同的預(yù)測(cè)模型進(jìn)行預(yù)測(cè)。為滿足工程需要,基于Excel2003,利用VBA與Matrix集成開發(fā)了高速公路軟基沉降預(yù)測(cè)程序,該程序能夠在軟基不同的施工階段采取相應(yīng)的預(yù)測(cè)模型進(jìn)行預(yù)測(cè)[6]。實(shí)踐表明,預(yù)測(cè)結(jié)果良好,操作簡(jiǎn)單,能極大提高工作效率,保證項(xiàng)目順利進(jìn)行。
[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的測(cè)量平差程序設(shè)計(jì)與實(shí)現(xiàn)[J].北京測(cè)繪,2012(6):14-18
[4] 王漢雄,喬景順.Excel VBA在測(cè)量數(shù)據(jù)處理中的應(yīng)用[J].測(cè)繪科學(xué),2008,33(2):210-212
[5] 趙俊明,石名磊,張宏.灰色理論在高速公路軟土地基沉降預(yù)測(cè)中的應(yīng)用[J].公路交通科技,2005,22(5):56-58
[6] 汪祖民.高速公路軟土地基沉降變形監(jiān)測(cè)分析與預(yù)報(bào)[J].蘇州科技學(xué)院學(xué)報(bào):工程技術(shù)版,2004,17(2):34-40
[7] 胡馳,吳勝倉(cāng),雷靜.高速公路路基沉降預(yù)測(cè)系統(tǒng)開發(fā)與應(yīng)用[C].第九屆建筑物改造與病害處理學(xué)術(shù)研討會(huì),濟(jì)南, 2011
[8] 黎軍豐.公路軟土路基沉降預(yù)測(cè)方法綜述[J].科技情報(bào)開發(fā)與經(jīng)濟(jì),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
吳正,碩士,主要從事大地測(cè)量學(xué)與測(cè)量工程方面的研究。
2014-03-27。
項(xiàng)目來源:國(guó)家自然科學(xué)基金資助項(xiàng)目(40974002);國(guó)家重大科技基礎(chǔ)設(shè)施建設(shè)資助項(xiàng)目(發(fā)改高技[2007]1911)。