查文庫>論文> 隧道照明設計的軟體開發實現的論文

隧道照明設計的軟體開發實現的論文

隧道照明設計的軟體開發實現的論文

  摘要:目前國內外沒有專門針對隧道照明設計的軟體。為實現隧道照明的自動化設計,設計一款專業的隧道照明設計軟體。軟體基於Winform框架進行開發。繪圖是軟體的核心功能,其中二維圖形採用GDI+繪製,三維部分使用C#語言封裝下的OpenGL圖形軟體介面實現。以VisualStudio為開發工具,利用SQLite實現資料庫設計,軟體能使設計人員快速、準確地製作設計方案,並進行模擬模擬。經過測試,軟體整體設計符合規範要求,能有效減少隧道照明設計人員的工作量。

  關鍵詞:隧道照明;照明設計;GDI+;OpenGL

  0引言

  公路隧道是陸路交通體系中重要的組成部分,隧道照明設計作為光學、建築學、資訊學、交通安全等多個學科的交叉課題,是公路隧道設計過程中極其重要的環節。隧道照明設計過程中需考慮亮度、照度、均勻度、功率、可控性及安全性等設計引數[1]。現階段我國對隧道照明的LED燈具設計與規劃,仍採用傳統散射光的配光設計,一般均為電氣設計工程師代為規劃,沒有專業照明設計人員[2]。專業隧道照明配光軟體是智慧隧道技術及產業發展亟待滿足的重要需求。針對隧道照明應用設計開發一款專業軟體,可以方便照明企業與設計院快速、準確地製作設計方案,以便設計方選擇燈具的配光、功率進行燈光佈置。本軟體是基於Microsoft。NETFramework開發環境,使用C#程式語言,基於Winform框架開發的一款標準的Windows桌面應用軟體,其中二維圖形繪製與輸出採用GDI+圖形裝置介面,三維部分使用C#語言封裝下的OpenGL圖形軟體介面。軟體功能包括生成隧道的截面圖、截面燈光圖、縱向燈光圖和三維模擬圖,並能進行隧道的分段亮度計算,生成隧道布燈圖。該軟體極大簡化了整個隧道燈光設計過程,且整體設計符合規範要求,能有效減輕隧道配光師和隧道燈光安裝人員的工作強度。

  1系統設計

  1。1系統總體架構(1)總體架構。軟體採用C#語言編寫,是基於微軟。netframework框架的Winform桌面應用程式[3]。(2)資料庫架構。採用輕量級的SQLite資料庫,用於儲存使用者許可權資訊、燈具資訊和檔案瀏覽歷史資訊等。(3)繪圖與影象輸出。軟體主要功能是實現各種模擬和布燈圖的繪製與輸出。繪圖主要是採用C#語言內建的GDI+進行繪製[4],採用C#語言內建圖形物件的輸出方法進行輸出。(4)三維影象的生成。軟體的三維圖採用SharpGL控制元件進行繪製。該控制元件在底層封裝了OpenGL框架,能進行三維建模[5]。1。2系統功能模組設計根據軟體介面劃分的各模組的主要功能如下:(1)登入介面。該介面提供登入功能,使用者輸入使用者名稱和密碼後,登入系統,系統會根據使用者所屬類別,載入不同的功能頁面。同時還提供瀏覽模式,該模式無需密碼就能進入系統,但是隻提供開啟和瀏覽功能,不能進行任何修改。(2)軟體主頁面。該介面提供開啟專案與新建專案的功能,點選相應按鈕即可進入相應功能,並且提供開啟專案歷史記錄的功能,可快速開啟最近開啟過的專案檔案。(3)引數輸入介面。該介面的功能是讓使用者輸入隧道的基本引數、燈具的基本引數和燈具的佈置引數還有專案相關資訊等,為後續的模擬與設計提供基本的資料[6]。(4)隧道引數介面。該介面會展示前一介面輸入的各項引數,如需修改可在此介面進行修改。後續也可在此介面展示其它介面中修改的隧道引數。(5)軟體功能主介面。在開啟專案或者新建專案輸入引數確認後會進入此介面介面左側有一列功能按鈕,點選相應功能按鈕即可進入相應功能,在介面右側顯示相應功能的子介面。(6)隧道截面圖介面。該介面根據隧道基本引數自動生成隧道的截面圖,並標註各項基本引數,讓設計者對隧道有基本的直觀認識。(7)隧道截面燈光圖介面。該介面根據燈具的佈置引數自動生成隧道的截面燈光模擬圖,使用者可根據此圖參照設計規範和實際需求對燈具佈置引數進行修改以滿足實際專案需求。(8)隧道縱向燈光圖介面。該介面根據燈具的佈置引數自動生成隧道的縱向燈光模擬圖,使用者可根據此圖參照設計規範和實際需求對燈具佈置引數進行修改以滿足實際專案需求。(9)分段亮度計算介面。該介面提供根據隧道照明設計規範自動計算的各段亮度值,如果實際專案中需要對其進行調整,可在該介面中完成。(10)布燈圖介面。該介面根據隧道和燈具的各項引數自動生成隧道的布燈圖並以向量圖格式輸出,與布燈相關的各項引數能在此介面進行修改。(11)隧道三維圖介面。該介面支援檢視隧道的三維模型。(12)燈具數目統計介面。該介面支援對隧道布燈圖中所使用的燈具規格和數目的統計。(13)許可權管理介面。該介面支援對當前使用者密碼的修改,新建使用者和重置使用者密碼等功能。該介面與使用者許可權相關聯。只有管理員賬戶才能使用全部功能。

  2系統實現

  為方便設計人員使用,本軟體採用基於C#語言的Winform框架進行開發,是一款標準的Windows桌面應用程式,由於軟體功能模組較多,只選取最核心的功能介紹系統實現。2。1隧道、燈具和其它輔助類建立由於C#是面向物件開發語言,所以在正式功能演算法實施之前,先要進行模型也就是類的建立。類就是對具有相同資料元素和功能物件的抽象,實際上就是一種資料型別。類的構成包括欄位和函式。當用戶新建專案時,要求使用者輸入隧道和燈具及燈具佈置的相關引數,隧道引數包括[7]:車道寬度、左側檢修道寬度、右側檢修道寬度、建築界限高度、隧道頂高、檢修道高度、隧道長度、設計時速、縱坡、車道數、洞外亮度、通行方式、設計小時交通量等。燈具引數包括各分段燈具的功率、光效以及燈具利用係數、養護係數等。燈具安裝引數有基本燈安裝間距、燈具安裝高度、燈具與隧道中線的距離、安裝傾角、投射角、縱向投射角、布燈方式、出入口安裝餘量等。對於所需的引數,都封裝到隧道類和燈具類中,然後再對其中需要處理的資料進行方法的封裝[8]。除了兩個核心類,軟體同時需要建立一些輔助模擬與繪圖的類,如三維圖繪製所需的向量計算類和攝像機類[9]。還有隧道相關計算需要的隧道工具類,管理專案和許可權的專案類和使用者類等。2。2隧道截面圖與平面配光圖繪製各種二維圖形的繪製與輸出是本軟體的核心功能,採用圖形裝置介面GDI+(GraphicsDeviceInterface)進行二維圖形繪製。它是一組透過C++類實現的應用程式程式設計介面,主要負責在螢幕和列印裝置輸出有關資訊。具體程式設計流程是:先建立一個圖形物件(Graphics),然後透過面向物件的程式設計方式呼叫它的各種方法,如Draw—Line(Penpen、Pointpt1、Pointpt2),DrawElilpse(Penp、floatx、floaty、floatwidth、floatheight),實現圖形繪製[10]。對於隧道建築建模而言,隧道的走線及淨空斷面是模型的關鍵,走線指決定隧道長度及方向隧道縱向的主軸中心線淨空斷面決定隧道的`外形結構。由於燈具屬於隧道內建築,還需要考慮隧道的建築界限[11]。根據《公路隧道設計規範》關於隧道截面設計圖的規定,軟體透過GDI+介面進行程式設計繪製隧道的截面圖。同時要根據輸入的燈具佈置引數如投射角、安裝傾角燈進行隧道配光的模擬,包括截面與縱向燈光的配光模擬,其主要意義是驗證配光的均勻性,同時使設計能滿足一些其它配光上需要考慮的因素,如隧道配光要求燈光能照射到隧道側壁兩米高的範圍,這樣能透過側壁反射,提高路面大概10%亮度。2。3隧道分段亮度計算隧道照明是隧道各項設計中一個重要環節,通常一個隧道的最低亮度由其車流量和設計時速決定[12]。由於人眼對光學的適應性是一個逐步的過程,所以從交通安全形度上,隧道被分為入口段、過渡段、中間段和出口段,從亮度角度而言先逐級遞減,後逐級增加。《公路隧道照明設計細則》中對各個分段的亮度進行了詳細的建議性規定,軟體可根據使用者輸入的引數對隧道進行自動分段,並根據《公路隧道照明設計細則》計算出各段的亮度值,某些情況下設計師希望改變亮度值,軟體也提供了修改各段亮度的功能,以方便調整後續的布燈操作。2。4隧道布燈圖繪製與輸出隧道布燈圖繪製是該軟體最核心的功能,它能直接指導隧道布燈工作[13]。隧道燈分為基本燈與加強燈,各個分段都要佈置基本燈,基本燈布燈間距可根據規定算出參考值,設計師也可手動修改其值,一般除了中間段,其它分段都要佈置加強燈,可根據計算出的各段亮度值、燈具的佈置係數,結合《公路隧道照明設計細則》中的計算公式進行計算:Eav=ηφΜωWS由上式可得出各段的加強燈間距和各段基本燈間距內加強燈的個數。如果設計師需要修改各段基本燈間距內加強燈的個數,也可手動修改。繪圖時同時要考慮隧道的布燈方式,布燈方式主要有:中線佈置、中線側偏佈置、兩側對陣佈置、兩側交錯佈置4種,繪製時可根據實際需求進行選擇,布燈同時需要考慮一些其它條件,如入口段布燈通常比較密集,可以選擇將入口段的燈具布成兩排,這也是設計師通常會採用的布燈方式。隧道出口和入口一般會留有一定的餘量不進行布燈,繪製布燈圖時也要考慮該因素[14]。隧道布燈圖要進行一些標註,比如要標註各分段名稱及其長度、各分段加強燈的間距、出入口餘量長度、行車方向,同時還要區分加強燈與基本燈。繪圖時採用GDI+圖形裝置介面進行程式設計,輸出時採用windows的向量圖格式emf進行輸出,可以方便後期的編輯與使用。2。5隧道三維圖繪製首先運用OpenGL建模功能。OpenGL雖然提供基本的點、線、多邊形的繪製函式與一部分複雜空間體及其組合,然而面對具有複雜三維結構的隧道,無法直接使用函式進行繪製[15]。使用OpenGL以頂點為圖元,以空間多邊形為空間體的各個面,可以避免凹多面體不能被函式直接表示的問題,以基本幾何圖形尤其是矩形為基礎繪製隧道形狀。然後運用OpenGL中的紋理對映、材質的光反射設定、環境光源設定,完成對隧道內地面、檢修道、隧道牆壁的材質、紋理等的渲染,使三維場景可以模擬現實中的隧道外形。OpenGL提供視點變化、視角變換、模型變換、投影變換等函式。利用攝像機類中封裝好的的變換可以在模擬隧道中任意改變觀察者位置,轉變視線方向。利用封裝方法可以初始化自己的視點,指定觀察角度、方向,也可以靜態地觀察影象。透過這些方式,可以實現在模擬隧道中自由漫遊,方便對模擬隧道進行多角度全方位的觀察[16]。OpenGL中封裝了計算光照強度和光照方向的演算法,其中以平行光和二次衰減光為主,可以利用其確定光源位置、光源屬性等介面完成方法的封裝。通常由於第一個光源與其它光源有一定設定差距,經常被用作整體環境光源,在本文即為自然光源(洞外亮度L20(S))。完成光源設定後,根據光源的屬性,以及隧道外觀的材質屬性可得到隧道內部呈現的亮度,場景中光強的調節透過改變光源屬性中的RGBA分量實現。

  3系統測試

  軟體安裝後,透過桌面圖示開啟軟體,進入登入介面,輸入預設的管理員賬號與密碼,點選登入能正常進入軟體主介面,當輸入了錯誤的使用者名稱或密碼後,將提示密碼錯誤,不能進入軟體。進入軟體主介面後能選擇是新建專案還是開啟已儲存的專案,還能快速開啟已記錄的歷史專案。當選擇新建專案後,進入引數輸入介面;當輸入符合軟體校驗規則的引數後可進入軟體的功能主介面,當輸入的引數不符合預設規則時,軟體會給出相應提示。軟體功能主介面預設顯示隧道的屬性頁面。主介面左側列出各個子功能介面的按鈕。

  4結語

  本文設計並實現了基於C#和Winform框架的隧道照明設計軟體,功能包括生成隧道的截面圖、截面燈光圖、縱向燈光圖和三維模擬圖,並能計算隧道的分段亮度,生成並輸出隧道布燈圖,經過多次測試及工程師試用證明,該軟體能大幅簡化整個隧道的燈光設計過程,且整體設計符合規範要求,能有效減輕隧道配光師和隧道燈光安裝人員的工作量。

  參考文獻:

  [1]劉翠萍。基於LED的公路隧道照明設計與中間視覺下LED隧道照明研究[D]。青島:中國海洋大學,2012。

  [2]周曉波。LED燈光照明系統的模擬研究及其軟體開發[D]。武漢:武漢理工大學,2004。

  [3]繆平,朱曉輝,丁浩,陳蘇蓉。WinFrmo介面統一管理方法研究[J]。軟體導刊,2017,16(09):1—3。

  [4]陳本峰,蘇琦。WindowsGDI+的研究與應用[J]。計算機應用研究,2003,13(03):56—59。

  [5]王曉松,徐妍,田董煒,劉志強,胡夢濤。SharpGL三維建模技術實現[J]。軟體導刊,2017,16(04):205—208。

  [6]楊超,程翠。公路隧道照明燈具利用係數研究[J]。照明工程學報,2017,28(1):97—101。

  [7]塗耘,史玲娜,王小軍。新舊規範對比下的隧道照明節能設計研究[J]。照明工程學報,2015,26(1):50—54。

  [8]DEGNANJ。Lightingmountains:thestateoforegonmakesitstun—nelsystemalotbrighter[J]。Roads&Bridges,2005,43(10):42—46。

  [9]祝敏。基於OpenGL的LED燈光情景模擬[D]。哈爾濱:哈爾濱理工大學,2007。

  [10]閆宇晗,常鑫。在C#中用GDI+實現圖形動態顯示[J]。計算機技術與發展,2006,8(12):117—118+232。

  [11]但小崗。SQLite資料庫在WindowsForms應用開發中的應用研究[J]。價值工程,2016,35(21):141—142。

  [12]王鵬展。LED道路照明光環境最佳化技術探索[D]。上海:復旦大學,2011。

  [13]張善偉。公路隧道照明設計中DIALux的適用性及建模方法分析[J]。照明工程學報,2014,25(5):93—97。

  [14]張玲,陳元春,孫勇。基於GDI+的通用圖形平臺設計[J]。計算機工程,2005,23(12):218—220。

  [15]吳偉和,郝愛民,李智。基於直接光照的全域性光照模擬[J]。計算機工程,2009,35(10):257—258。

  [16]李寧。高速公路隧道照明節能技術及控制方法研究[D]。昆明:昆明理工大學,2013。