前言:想要寫出一篇引人入勝的文章?我們特意為您整理了隧道照明設(shè)計的軟件開發(fā)實現(xiàn)范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:目前國內(nèi)外沒有專門針對隧道照明設(shè)計的軟件。為實現(xiàn)隧道照明的自動化設(shè)計,設(shè)計一款專業(yè)的隧道照明設(shè)計軟件。軟件基于Winform框架進行開發(fā)。繪圖是軟件的核心功能,其中二維圖形采用GDI+繪制,三維部分使用C#語言封裝下的OpenGL圖形軟件接口實現(xiàn)。以VisualStudio為開發(fā)工具,利用SQLite實現(xiàn)數(shù)據(jù)庫設(shè)計,軟件能使設(shè)計人員快速、準確地制作設(shè)計方案,并進行仿真模擬。經(jīng)過測試,軟件整體設(shè)計符合規(guī)范要求,能有效減少隧道照明設(shè)計人員的工作量。
關(guān)鍵詞:隧道照明;照明設(shè)計;GDI+;OpenGL
0引言
公路隧道是陸路交通體系中重要的組成部分,隧道照明設(shè)計作為光學(xué)、建筑學(xué)、信息學(xué)、交通安全等多個學(xué)科的交叉課題,是公路隧道設(shè)計過程中極其重要的環(huán)節(jié)。隧道照明設(shè)計過程中需考慮亮度、照度、均勻度、功率、可控性及安全性等設(shè)計參數(shù)[1]。現(xiàn)階段我國對隧道照明的LED燈具設(shè)計與規(guī)劃,仍采用傳統(tǒng)散射光的配光設(shè)計,一般均為電氣設(shè)計工程師代為規(guī)劃,沒有專業(yè)照明設(shè)計人員[2]。專業(yè)隧道照明配光軟件是智能隧道技術(shù)及產(chǎn)業(yè)發(fā)展亟待滿足的重要需求。針對隧道照明應(yīng)用設(shè)計開發(fā)一款專業(yè)軟件,可以方便照明企業(yè)與設(shè)計院快速、準確地制作設(shè)計方案,以便設(shè)計方選擇燈具的配光、功率進行燈光布置。本軟件是基于Microsoft.NETFramework開發(fā)環(huán)境,使用C#編程語言,基于Winform框架開發(fā)的一款標準的Windows桌面應(yīng)用軟件,其中二維圖形繪制與輸出采用GDI+圖形設(shè)備接口,三維部分使用C#語言封裝下的OpenGL圖形軟件接口。軟件功能包括生成隧道的截面圖、截面燈光圖、縱向燈光圖和三維仿真圖,并能進行隧道的分段亮度計算,生成隧道布燈圖。該軟件極大簡化了整個隧道燈光設(shè)計過程,且整體設(shè)計符合規(guī)范要求,能有效減輕隧道配光師和隧道燈光安裝人員的工作強度.
1系統(tǒng)設(shè)計
1.1系統(tǒng)總體架構(gòu)(1)總體架構(gòu)。軟件采用C#語言編寫,是基于微軟.netframework框架的Winform桌面應(yīng)用程序[3]。(2)數(shù)據(jù)庫架構(gòu)。采用輕量級的SQLite數(shù)據(jù)庫,用于存儲用戶權(quán)限信息、燈具信息和文件瀏覽歷史信息等。(3)繪圖與圖像輸出。軟件主要功能是實現(xiàn)各種仿真和布燈圖的繪制與輸出。繪圖主要是采用C#語言內(nèi)置的GDI+進行繪制[4],采用C#語言內(nèi)置圖形對象的輸出方法進行輸出。(4)三維圖像的生成。軟件的三維圖采用SharpGL控件進行繪制。該控件在底層封裝了OpenGL框架,能進行三維建模[5]。1.2系統(tǒng)功能模塊設(shè)計根據(jù)軟件界面劃分的各模塊的主要功能如下:(1)登錄界面。該界面提供登錄功能,用戶輸入用戶名和密碼后,登錄系統(tǒng),系統(tǒng)會根據(jù)用戶所屬類別,加載不同的功能頁面。同時還提供瀏覽模式,該模式無需密碼就能進入系統(tǒng),但是只提供打開和瀏覽功能,不能進行任何修改。(2)軟件主頁面。該界面提供打開項目與新建項目的功能,點擊相應(yīng)按鈕即可進入相應(yīng)功能,并且提供打開項目歷史記錄的功能,可快速打開最近打開過的項目文件。(3)參數(shù)輸入界面。該界面的功能是讓用戶輸入隧道的基本參數(shù)、燈具的基本參數(shù)和燈具的布置參數(shù)還有項目相關(guān)信息等,為后續(xù)的仿真與設(shè)計提供基本的數(shù)據(jù)[6]。(4)隧道參數(shù)界面。該界面會展示前一界面輸入的各項參數(shù),如需修改可在此界面進行修改。后續(xù)也可在此界面展示其它界面中修改的隧道參數(shù)。(5)軟件功能主界面。在打開項目或者新建項目輸入?yún)?shù)確認后會進入此界面界面左側(cè)有一列功能按鈕,點擊相應(yīng)功能按鈕即可進入相應(yīng)功能,在界面右側(cè)顯示相應(yīng)功能的子界面。(6)隧道截面圖界面。該界面根據(jù)隧道基本參數(shù)自動生成隧道的截面圖,并標注各項基本參數(shù),讓設(shè)計者對隧道有基本的直觀認識。(7)隧道截面燈光圖界面。該界面根據(jù)燈具的布置參數(shù)自動生成隧道的截面燈光仿真圖,用戶可根據(jù)此圖參照設(shè)計規(guī)范和實際需求對燈具布置參數(shù)進行修改以滿足實際項目需求。(8)隧道縱向燈光圖界面。該界面根據(jù)燈具的布置參數(shù)自動生成隧道的縱向燈光仿真圖,用戶可根據(jù)此圖參照設(shè)計規(guī)范和實際需求對燈具布置參數(shù)進行修改以滿足實際項目需求。(9)分段亮度計算界面。該界面提供根據(jù)隧道照明設(shè)計規(guī)范自動計算的各段亮度值,如果實際項目中需要對其進行調(diào)整,可在該界面中完成。(10)布燈圖界面。該界面根據(jù)隧道和燈具的各項參數(shù)自動生成隧道的布燈圖并以矢量圖格式輸出,與布燈相關(guān)的各項參數(shù)能在此界面進行修改。(11)隧道三維圖界面。該界面支持查看隧道的三維模型。(12)燈具數(shù)目統(tǒng)計界面。該界面支持對隧道布燈圖中所使用的燈具規(guī)格和數(shù)目的統(tǒng)計。(13)權(quán)限管理界面。該界面支持對當前用戶密碼的修改,新建用戶和重置用戶密碼等功能。該界面與用戶權(quán)限相關(guān)聯(lián)。只有管理員賬戶才能使用全部功能。
2系統(tǒng)實現(xiàn)
為方便設(shè)計人員使用,本軟件采用基于C#語言的Winform框架進行開發(fā),是一款標準的Windows桌面應(yīng)用程序,由于軟件功能模塊較多,只選取最核心的功能介紹系統(tǒng)實現(xiàn)。2.1隧道、燈具和其它輔助類建立由于C#是面向?qū)ο箝_發(fā)語言,所以在正式功能算法實施之前,先要進行模型也就是類的建立。類就是對具有相同數(shù)據(jù)元素和功能對象的抽象,實際上就是一種數(shù)據(jù)類型。類的構(gòu)成包括字段和函數(shù)。當用戶新建項目時,要求用戶輸入隧道和燈具及燈具布置的相關(guān)參數(shù),隧道參數(shù)包括[7]:車道寬度、左側(cè)檢修道寬度、右側(cè)檢修道寬度、建筑界限高度、隧道頂高、檢修道高度、隧道長度、設(shè)計時速、縱坡、車道數(shù)、洞外亮度、通行方式、設(shè)計小時交通量等。燈具參數(shù)包括各分段燈具的功率、光效以及燈具利用系數(shù)、養(yǎng)護系數(shù)等。燈具安裝參數(shù)有基本燈安裝間距、燈具安裝高度、燈具與隧道中線的距離、安裝傾角、投射角、縱向投射角、布燈方式、出入口安裝余量等。對于所需的參數(shù),都封裝到隧道類和燈具類中,然后再對其中需要處理的數(shù)據(jù)進行方法的封裝[8]。除了兩個核心類,軟件同時需要建立一些輔助仿真與繪圖的類,如三維圖繪制所需的向量計算類和攝像機類[9]。還有隧道相關(guān)計算需要的隧道工具類,管理項目和權(quán)限的項目類和用戶類等。 2.2隧道截面圖與平面配光圖繪制各種二維圖形的繪制與輸出是本軟件的核心功能,采用圖形設(shè)備接口GDI+(GraphicsDeviceInterface)進行二維圖形繪制。它是一組通過C++類實現(xiàn)的應(yīng)用程序編程接口,主要負責在屏幕和打印設(shè)備輸出有關(guān)信息。具體編程流程是:先創(chuàng)建一個圖形對象(Graphics),然后通過面向?qū)ο蟮木幊谭绞秸{(diào)用它的各種方法,如Draw-Line(Penpen、Pointpt1、Pointpt2),DrawElilpse(Penp、floatx、floaty、floatwidth、floatheight),實現(xiàn)圖形繪制[10]。對于隧道建筑建模而言,隧道的走線及凈空斷面是模型的關(guān)鍵,走線指決定隧道長度及方向隧道縱向的主軸中心線凈空斷面決定隧道的外形結(jié)構(gòu)。由于燈具屬于隧道內(nèi)建筑,還需要考慮隧道的建筑界限[11]。根據(jù)《公路隧道設(shè)計規(guī)范》關(guān)于隧道截面設(shè)計圖的規(guī)定,軟件通過GDI+接口進行編程繪制隧道的截面圖。同時要根據(jù)輸入的燈具布置參數(shù)如投射角、安裝傾角燈進行隧道配光的仿真,包括截面與縱向燈光的配光仿真,其主要意義是驗證配光的均勻性,同時使設(shè)計能滿足一些其它配光上需要考慮的因素,如隧道配光要求燈光能照射到隧道側(cè)壁兩米高的范圍,這樣能通過側(cè)壁反射,提高路面大概10%亮度。2.3隧道分段亮度計算隧道照明是隧道各項設(shè)計中一個重要環(huán)節(jié),通常一個隧道的最低亮度由其車流量和設(shè)計時速決定[12]。由于人眼對光學(xué)的適應(yīng)性是一個逐步的過程,所以從交通安全角度上,隧道被分為入口段、過渡段、中間段和出口段,從亮度角度而言先逐級遞減,后逐級增加。《公路隧道照明設(shè)計細則》中對各個分段的亮度進行了詳細的建議性規(guī)定,軟件可根據(jù)用戶輸入的參數(shù)對隧道進行自動分段,并根據(jù)《公路隧道照明設(shè)計細則》計算出各段的亮度值,某些情況下設(shè)計師希望改變亮度值,軟件也提供了修改各段亮度的功能,以方便調(diào)整后續(xù)的布燈操作。2.4隧道布燈圖繪制與輸出隧道布燈圖繪制是該軟件最核心的功能,它能直接指導(dǎo)隧道布燈工作[13]。隧道燈分為基本燈與加強燈,各個分段都要布置基本燈,基本燈布燈間距可根據(jù)規(guī)定算出參考值,設(shè)計師也可手動修改其值,一般除了中間段,其它分段都要布置加強燈,可根據(jù)計算出的各段亮度值、燈具的布置系數(shù),結(jié)合《公路隧道照明設(shè)計細則》中的計算公式進行計算:Eav=η•φ•Μ•ωW•S由上式可得出各段的加強燈間距和各段基本燈間距內(nèi)加強燈的個數(shù)。如果設(shè)計師需要修改各段基本燈間距內(nèi)加強燈的個數(shù),也可手動修改。繪圖時同時要考慮隧道的布燈方式,布燈方式主要有:中線布置、中線側(cè)偏布置、兩側(cè)對陣布置、兩側(cè)交錯布置4種,繪制時可根據(jù)實際需求進行選擇,布燈同時需要考慮一些其它條件,如入口段布燈通常比較密集,可以選擇將入口段的燈具布成兩排,這也是設(shè)計師通常會采用的布燈方式。隧道出口和入口一般會留有一定的余量不進行布燈,繪制布燈圖時也要考慮該因素[14]。隧道布燈圖要進行一些標注,比如要標注各分段名稱及其長度、各分段加強燈的間距、出入口余量長度、行車方向,同時還要區(qū)分加強燈與基本燈。繪圖時采用GDI+圖形設(shè)備接口進行編程,輸出時采用windows的矢量圖格式emf進行輸出,可以方便后期的編輯與使用。2.5隧道三維圖繪制首先運用OpenGL建模功能。OpenGL雖然提供基本的點、線、多邊形的繪制函數(shù)與一部分復(fù)雜空間體及其組合,然而面對具有復(fù)雜三維結(jié)構(gòu)的隧道,無法直接使用函數(shù)進行繪制[15]。使用OpenGL以頂點為圖元,以空間多邊形為空間體的各個面,可以避免凹多面體不能被函數(shù)直接表示的問題,以基本幾何圖形尤其是矩形為基礎(chǔ)繪制隧道形狀。然后運用OpenGL中的紋理映射、材質(zhì)的光反射設(shè)置、環(huán)境光源設(shè)置,完成對隧道內(nèi)地面、檢修道、隧道墻壁的材質(zhì)、紋理等的渲染,使三維場景可以模擬現(xiàn)實中的隧道外形。OpenGL提供視點變化、視角變換、模型變換、投影變換等函數(shù)。利用攝像機類中封裝好的的變換可以在模擬隧道中任意改變觀察者位置,轉(zhuǎn)變視線方向。利用封裝方法可以初始化自己的視點,指定觀察角度、方向,也可以靜態(tài)地觀察圖像。通過這些方式,可以實現(xiàn)在模擬隧道中自由漫游,方便對模擬隧道進行多角度全方位的觀察[16]。OpenGL中封裝了計算光照強度和光照方向的算法,其中以平行光和二次衰減光為主,可以利用其確定光源位置、光源屬性等接口完成方法的封裝。通常由于第一個光源與其它光源有一定設(shè)置差距,經(jīng)常被用作整體環(huán)境光源,在本文即為自然光源(洞外亮度L20(S))。完成光源設(shè)置后,根據(jù)光源的屬性,以及隧道外觀的材質(zhì)屬性可得到隧道內(nèi)部呈現(xiàn)的亮度,場景中光強的調(diào)節(jié)通過改變光源屬性中的RGBA分量實現(xiàn)。
3系統(tǒng)測試
軟件安裝后,通過桌面圖標打開軟件,進入登錄界面,輸入默認的管理員賬號與密碼,點擊登錄能正常進入軟件主界面,當輸入了錯誤的用戶名或密碼后,將提示密碼錯誤,不能進入軟件。進入軟件主界面后能選擇是新建項目還是打開已保存的項目,還能快速打開已記錄的歷史項目。當選擇新建項目后,進入?yún)?shù)輸入界面;當輸入符合軟件校驗規(guī)則的參數(shù)后可進入軟件的功能主界面,當輸入的參數(shù)不符合預(yù)設(shè)規(guī)則時,軟件會給出相應(yīng)提示。軟件功能主界面默認顯示隧道的屬性頁面。主界面左側(cè)列出各個子功能界面的按鈕.
4結(jié)語
本文設(shè)計并實現(xiàn)了基于C#和Winform框架的隧道照明設(shè)計軟件,功能包括生成隧道的截面圖、截面燈光圖、縱向燈光圖和三維仿真圖,并能計算隧道的分段亮度,生成并輸出隧道布燈圖,經(jīng)過多次測試及工程師試用證明,該軟件能大幅簡化整個隧道的燈光設(shè)計過程,且整體設(shè)計符合規(guī)范要求,能有效減輕隧道配光師和隧道燈光安裝人員的工作量。
參考文獻:
[1]劉翠萍.基于LED的公路隧道照明設(shè)計與中間視覺下LED隧道照明研究[D].青島:中國海洋大學(xué),2012.
[2]周曉波.LED燈光照明系統(tǒng)的仿真研究及其軟件開發(fā)[D].武漢:武漢理工大學(xué),2004.
[3]繆平,朱曉輝,丁浩,陳蘇蓉.WinFrmo界面統(tǒng)一管理方法研究[J].軟件導(dǎo)刊,2017,16(09):1-3.
[4]陳本峰,蘇琦.WindowsGDI+的研究與應(yīng)用[J].計算機應(yīng)用研究,2003,13(03):56-59.
[5]王曉松,徐妍,田董煒,劉志強,胡夢濤.SharpGL三維建模技術(shù)實現(xiàn)[J].軟件導(dǎo)刊,2017,16(04):205-208.
[6]楊超,程翠.公路隧道照明燈具利用系數(shù)研究[J].照明工程學(xué)報,2017,28(1):97-101.
[7]涂耘,史玲娜,王小軍.新舊規(guī)范對比下的隧道照明節(jié)能設(shè)計研究[J].照明工程學(xué)報,2015,26(1):50-54.
[8]DEGNANJ.Lightingmountains:thestateoforegonmakesitstun-nelsystemalotbrighter[J].Roads&Bridges,2005,43(10):42-46.
[9]祝敏.基于OpenGL的LED燈光情景仿真[D].哈爾濱:哈爾濱理工大學(xué),2007.
[10]閆宇晗,常鑫.在C#中用GDI+實現(xiàn)圖形動態(tài)顯示[J].計算機技術(shù)與發(fā)展,2006,8(12):117-118+232.
[11]但小崗.SQLite數(shù)據(jù)庫在WindowsForms應(yīng)用開發(fā)中的應(yīng)用研究[J].價值工程,2016,35(21):141-142.
[12]王鵬展.LED道路照明光環(huán)境優(yōu)化技術(shù)探索[D].上海:復(fù)旦大學(xué),2011.
[13]張善偉.公路隧道照明設(shè)計中DIALux的適用性及建模方法分析[J].照明工程學(xué)報,2014,25(5):93-97.
[14]張玲,陳元春,孫勇.基于GDI+的通用圖形平臺設(shè)計[J].計算機工程,2005,23(12):218-220.
[15]吳偉和,郝愛民,李智.基于直接光照的全局光照模擬[J].計算機工程,2009,35(10):257-258.
[16]李寧.高速公路隧道照明節(jié)能技術(shù)及控制方法研究[D].昆明:昆明理工大學(xué),2013.
作者:王鵬宇 秦會斌 屠凡 單位:杭州電子科技大學(xué)電子信息學(xué)院