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