文/王東明
道路交通標(biāo)志作為道路安全設(shè)施必要的組成部分,影響著道路使用者的方方面面。道路交通標(biāo)志結(jié)構(gòu)設(shè)計是保障交通標(biāo)志結(jié)構(gòu)能夠正常使用的前提,為了能使復(fù)雜、繁瑣的運算簡單化、有效提升工作效率,我們將計算機(jī)程序引入至結(jié)構(gòu)運算中。目前,市面多見的交通安全及結(jié)構(gòu)設(shè)計軟件較多,運行及界面比較豐富,但是針對標(biāo)志結(jié)構(gòu)設(shè)計的軟件可以說得上是“鳳毛麟角”,這使得在實際應(yīng)用中遇到特殊標(biāo)志結(jié)構(gòu)仍需要進(jìn)行手工或編制excel 表進(jìn)行電算,給設(shè)計人員帶來了不少的麻煩。本文針對這種情況,提出用Python 語言編制相應(yīng)結(jié)構(gòu)設(shè)計驗算軟件,用來解決問題[1]。
無論是城市道路還是公路,目前道路交通標(biāo)志結(jié)構(gòu)的支撐形式常見的主要有以下幾種:門式、單懸臂式、雙懸臂式、單柱式、雙柱式以及附著式,其中門式結(jié)構(gòu)主要分為整體式管狀門架結(jié)構(gòu)及桁架結(jié)構(gòu)兩種。
標(biāo)志結(jié)構(gòu)設(shè)計中除恒載外,由于考慮標(biāo)志所在地區(qū)離平坦空曠地面10m 高,因此要加上風(fēng)荷載。譬如在北京城區(qū),根據(jù)相應(yīng)規(guī)范一般會選取重現(xiàn)期為50年一遇10min 的計算平均最大風(fēng)速,即29.2m/s;而基礎(chǔ)地基承載力應(yīng)按地勘報告予以取值。一般來說,標(biāo)志版面除小型單柱或附著版面會采用玻璃鋼材質(zhì)外,其余均使用鋁合金板材。鋁合金板材:標(biāo)志結(jié)構(gòu)主要材料為鋼材,鋼管型材一般采用Q235 鋼或Q345 無縫鋼管。鋁材:標(biāo)志板、滑動槽鋁均采用防銹鋁,牌號為5A02。
交通標(biāo)志是一種長期使用的結(jié)構(gòu)物,任何一個交通標(biāo)志結(jié)構(gòu)都必須經(jīng)過計算驗證,以確保在一定的使用年限之內(nèi),交通標(biāo)志能夠正常發(fā)揮作用。常用的標(biāo)志結(jié)構(gòu)計算方法有兩種:一種是應(yīng)用結(jié)構(gòu)力學(xué)和材料力學(xué)的原理將標(biāo)志結(jié)構(gòu)簡化為桿件體系,采用極限狀態(tài)設(shè)計方法進(jìn)行驗算;另一種是采用有限單元法,近似計算求解。后者目前國內(nèi)外計算軟件都可以進(jìn)行輔助設(shè)計,多用于復(fù)雜桁架結(jié)構(gòu);而前者在大部分結(jié)構(gòu)設(shè)計當(dāng)中都能通過極限狀態(tài)法給出足夠精確的結(jié)論結(jié)果,屬于傳統(tǒng)型驗算方法。本文主要探討研究以“極限狀態(tài)設(shè)計”方法下的結(jié)構(gòu)驗算,其設(shè)計原則如下:
γ0(δGd + δQd)≤fd
式中,γ0 為結(jié)構(gòu)重要性系數(shù),交通標(biāo)志結(jié)構(gòu)安全等級按照二級考慮,該系數(shù)取1;δGd 為永久荷載在結(jié)構(gòu)構(gòu)件截面或連接中產(chǎn)生的應(yīng)力效應(yīng);δQd 為可變荷載(主要為風(fēng)載)在結(jié)構(gòu)構(gòu)件截面或連接中產(chǎn)生的應(yīng)力效應(yīng)。
應(yīng)考慮荷載的短期效應(yīng)組合,表達(dá)式為:
v=vG+vQ≤[V]
式中,v 為交通標(biāo)志結(jié)構(gòu)或構(gòu)件中產(chǎn)生的變形值;vG 為永久荷載標(biāo)準(zhǔn)值在交通標(biāo)志結(jié)構(gòu)或構(gòu)件中產(chǎn)生的變形值;vQ 為可變荷載標(biāo)準(zhǔn)值在交通標(biāo)志結(jié)構(gòu)或構(gòu)件中產(chǎn)生的變形值;[V]為結(jié)構(gòu)或構(gòu)件的容許變形值。一般情況下,交通標(biāo)志結(jié)構(gòu)的基礎(chǔ)不需要進(jìn)行變形驗算,按地基承載力確定基礎(chǔ)底面積以及埋深。
Python 語言是由Guido van Rossum 于1990年代初設(shè)計的,起初僅僅是作為ABC 語言的一個延續(xù),Python 語言真正計入高速的發(fā)展并廣泛運用要追溯到2004年。目前市面上常用的Python 語言主要版本有Python2 系和Python3 系。Python 語言具有程序語句、語法簡單明了,程序免費、開源,比較自由,相比較一些其他語言來講運行速度快,兼容性和可植入性強(qiáng),對搭建在其基礎(chǔ)上的二次開發(fā)非常有優(yōu)勢。同時,Python 語言還擁有多種類型的“庫”,方便使用者根據(jù)使用需求選擇相應(yīng)“庫”的調(diào)用。但是Python 語言也有以下兩個缺點:相比C 類語言,它的運行速度較慢(但是從本項目運行上來看,幾乎可以忽略該缺點);可視性外觀較差,簡易程序的基礎(chǔ)開發(fā)很便捷,如果對其進(jìn)行visual 化的話對程序搭建要求比較復(fù)雜[2]。
市面上常用工程計算機(jī)編程語言,有Autolisp、MATLAB、Fortran2003、C、C++等。本程序選用Python 語言的原因,有以下幾個方面:其自身屬于腳本語言,小巧靈活,搭建速度快,極易投入使用;Python語言自帶的math 庫與MATLAB 在工程計算中應(yīng)用上一樣強(qiáng)大,且計算速度和搭建難度以及人機(jī)交互上,前者更有優(yōu)勢。
此次用Python 語言開發(fā)的程序基于windows XP操作系統(tǒng)以上即可運行,Python 選用3.7 版本。
此次用Python 語言所寫的主程序以gui.py 是程序的入口文件,也是程序visual 化的關(guān)鍵環(huán)節(jié)。Python 自帶很多強(qiáng)大的庫資源,gui.py 就是調(diào)用了其自帶的Tkinter 庫。Tkinter 具有成熟、穩(wěn)定的特點,其內(nèi)部 設(shè) 有Label、Frame、Entry、Text、Button、Listbox、Scrollbar 等主要控件。譬如Button 綁定相應(yīng)事件,當(dāng)用戶點擊按鈕即可觸發(fā)后續(xù)操作,Entry 實例為軟件提供了輸入的窗口,從而方便用戶進(jìn)行參數(shù)輸入。main.py 為程序的主體文件,通過不同數(shù)據(jù)條件的調(diào)入,根據(jù)計算分析,提供結(jié)果供使用人選取或進(jìn)一步更改。此次main.py 中架構(gòu)含有橫梁、立柱驗算、柱腳螺栓及法蘭盤驗算及基礎(chǔ)驗算三大模塊,首先通過輸入驗算所需基礎(chǔ)數(shù)據(jù),然后通過分析計算進(jìn)入一般受力分析,計算出的數(shù)據(jù)給出如何更改基礎(chǔ)數(shù)據(jù)的結(jié)論,或者滿足受力分析后進(jìn)入下一階段調(diào)試,最終輸出驗算結(jié)果,以便使用者記錄或進(jìn)行圖紙的相應(yīng)更改。math.py 為數(shù)學(xué)函數(shù)調(diào)用庫,也是Python 語言自帶常用科學(xué)計算模塊,通過此模塊調(diào)用各種科學(xué)函數(shù)可以解決結(jié)構(gòu)驗算上的各種問題。譬如,在做基礎(chǔ)柱腳螺栓核驗時,本程序采用盛金公式解決一元三次方程,通過輸出結(jié)果,區(qū)別實數(shù)、復(fù)數(shù),選取合理的數(shù)值,進(jìn)行下一步驗算。
一般來說,某一地區(qū)的交通標(biāo)志結(jié)構(gòu),固定參數(shù)主要是立柱材質(zhì)、版面材質(zhì)等,但是不排除會有其他參數(shù)需要調(diào)制修改地方。由于筆者的工程項目大部分都在北京地區(qū),所以程序自身數(shù)據(jù)選取的基本參數(shù)也以北京地方常用參數(shù)為基礎(chǔ)。但是,對一個工程輔助程序本身而言,還應(yīng)考慮其能夠應(yīng)用到不同的地域、不同的環(huán)境條件下,所以在本程序最開始參數(shù)輸入的界面中加入一個控件用來修改與北京地區(qū)不同的參數(shù),以適應(yīng)不同地域的標(biāo)志結(jié)構(gòu)設(shè)計以及相應(yīng)標(biāo)志結(jié)構(gòu)在標(biāo)準(zhǔn)提升時發(fā)生的變化,如圖1 所示。
圖1 單懸標(biāo)志驗算系統(tǒng)初始界面
通過對基礎(chǔ)數(shù)據(jù)的確認(rèn),單擊驗算開始,開始對橫梁根部最大正應(yīng)力、橫梁根部最大剪應(yīng)力、橫梁合成撓度、立柱正應(yīng)力、立柱危險點驗算、風(fēng)荷載引起的立柱變形驗算以及橫梁的垂直總位移進(jìn)行驗算。點擊驗算開始后,如果驗算成功,就會出現(xiàn)對話框以進(jìn)行再一步,并繼續(xù)進(jìn)行柱腳螺栓、法蘭盤驗算及基礎(chǔ)驗算。當(dāng)所有驗算通過后,會顯示驗算成功后界面(如圖2),同時根據(jù)結(jié)論進(jìn)行修改圖紙或進(jìn)一步驗算其他標(biāo)志結(jié)構(gòu)。
圖2 單懸標(biāo)志驗算系統(tǒng)最終界面
目前北京市新機(jī)場高速北線、京新高速(北京段)、大件路等多條北京市、郊區(qū)公路標(biāo)志結(jié)構(gòu)均通采用過該軟件進(jìn)行驗算復(fù)核及設(shè)計,并且都在正常運營使用中。
通過計算機(jī)編程語言的介入,大大提高了標(biāo)志結(jié)構(gòu)設(shè)計驗算的速度,節(jié)約了比以往科學(xué)計算、EXCEL電子表格計算的30%以上的時間?;赑ython 語言具有較強(qiáng)的包容性和廣泛的介入性,不久本程序?qū)行У匕裀YAutoCad、xlrd 等模塊結(jié)合起來,進(jìn)行基于Python 的Autocad 的二次開發(fā),實現(xiàn)圖紙、計算書一體化的驗算軟件。