摘 要:設(shè)計計算機(jī)光學(xué)元件混合編程軟件對光學(xué)領(lǐng)域發(fā)展具有十分重要的現(xiàn)實意義,本文首先對計算機(jī)光學(xué)和混合編程方法進(jìn)行了簡單介紹,然后對計算機(jī)光學(xué)元件混合編程設(shè)計進(jìn)行了詳細(xì)論述。
關(guān)鍵詞:計算機(jī)光學(xué)元件;混合編程;軟件設(shè)計
電磁波作為光學(xué)領(lǐng)域中最常應(yīng)用的一種射線,在實際應(yīng)用中,由于需要的不同往往需要對光場分布方式進(jìn)行改變,以達(dá)到應(yīng)用目的。這就需要有一種科學(xué)有效的方法來對電磁波光場進(jìn)行改變。有關(guān)實踐證明,利用計算機(jī)光學(xué)元件對電磁波場分布進(jìn)行改變往往能夠達(dá)到較高的效果。但由于傳統(tǒng)計算機(jī)光學(xué)元件設(shè)計算法運(yùn)算精度低,因而需要對現(xiàn)有計算機(jī)光學(xué)元件進(jìn)行改進(jìn),以提高軟件運(yùn)行效率。
1 計算機(jī)光學(xué)概述
計算機(jī)誕生后,在計算機(jī)的長期應(yīng)用過程中,技術(shù)研究人員與科學(xué)家們自然而然的將光學(xué)元件應(yīng)用到計算機(jī)當(dāng)中來制造光計算機(jī)。在此背景下,計算機(jī)光學(xué)理論形成。隨著對光計算機(jī)研究的不斷深入,目前已產(chǎn)生多種計算機(jī)光學(xué)分析方法。其中,較為有效的方法就是計算機(jī)光學(xué)元件。但計算機(jī)光學(xué)元件設(shè)計在光學(xué)領(lǐng)域?qū)儆谝粋€逆向問題,設(shè)計難度極大[ 1 ]。所謂逆向問題,指的是對成像系統(tǒng)中已知的入射場和出射場分布形式,計算出相應(yīng)元件平面上的相位浮雕高度,從而保證能夠?qū)ζ淙肷洳▓龇植歼M(jìn)行正確調(diào)制,并給出期望光場分布。在科技不斷進(jìn)步與相關(guān)理論不斷成熟的推動作用下,計算機(jī)光學(xué)元件設(shè)計理論取得了實質(zhì)性的進(jìn)展,標(biāo)量衍射理論、幾何理論和矢量理論是目前較為成熟且使用較多的三種理論。在計算機(jī)光學(xué)元件混合編程軟件設(shè)計過程中,依據(jù)這些理論對軟件進(jìn)行設(shè)計,可以為其提供相應(yīng)的理論支持與依據(jù)。
2 混合編程方法
要想設(shè)計出計算機(jī)光學(xué)元件混合編程軟件,就需要采用相應(yīng)的方法來實現(xiàn)多種編程語言的混合編程。目前,混合編程的實現(xiàn)主要有兩種方法,即利用動態(tài)連接庫和目標(biāo)文件。動態(tài)連接庫方法,是指將FORTRAN程序構(gòu)成動態(tài)連接庫之后,通過VC++編程軟件對其進(jìn)行動態(tài)調(diào)用,從而實現(xiàn)兩種語言的混合編程[ 2 ]。目標(biāo)文件方法是指,首先在FORTRAN和VC++各自的編程環(huán)境下編寫程序生成對應(yīng)的目標(biāo)文件,然后利用相關(guān)技術(shù)將兩種語言程序的目標(biāo)文件連接起來,生成在VC++環(huán)境下可執(zhí)行程序,這種程序即為混合編程程序。根據(jù)計算機(jī)光學(xué)元件軟件設(shè)計要求與應(yīng)用場合,本文采用目標(biāo)文件法來對計算機(jī)光學(xué)元件混合編程軟件的混合編程部分進(jìn)行設(shè)計。
3 計算機(jī)光學(xué)元件混合編程軟件設(shè)計
3.1 軟件開發(fā)環(huán)境與設(shè)計目標(biāo)
為實現(xiàn)計算機(jī)光學(xué)元件混合編程軟件的可視化,本文采用FORTRAN90和VC++6.0兩種編程軟件來開發(fā)計算機(jī)光學(xué)元件混合編程軟件。在FORTRAN編譯環(huán)境中,源程序文件擴(kuò)展名為.f90,在VC++編譯環(huán)境中,源程序文件擴(kuò)展名為.cpp?;旌暇幊逃肰C++軟件來調(diào)用VC目標(biāo)文件和FORTRAN目標(biāo)文件實現(xiàn)。需要注意的是,要想實現(xiàn)兩種不同編程語言的混合調(diào)用,就需要保證兩種語言擁有相同的調(diào)用約定[ 3 ]。STDCALL是VC++和FORTRAN軟件擁有的相同程序調(diào)用約定,因而可以采用該約定。另外,用VC調(diào)用FOR程序時,必須用extern對FOR函數(shù)進(jìn)行說明,強(qiáng)調(diào)該函數(shù)為一個外部函數(shù),并且extern的位置必須放在所有被調(diào)用函數(shù)之前。
為增強(qiáng)軟件數(shù)據(jù)處理功能,采用MATLAB可視化軟件為元件圖樣處理過程中的矩陣、數(shù)據(jù)分析以及其他數(shù)據(jù)處理提供強(qiáng)大的數(shù)據(jù)計算功能,以提高程序運(yùn)行效率與數(shù)據(jù)計算精確性,保障軟件運(yùn)行具有良好的穩(wěn)定性與可靠性。不僅如此,利用該可視化軟件還能夠促進(jìn)VC與FOR軟件各自優(yōu)點充分發(fā)揮。
根據(jù)計算機(jī)光學(xué)元件改變光波、微波、電磁波等各種光場分布這一作用,所設(shè)計的計算機(jī)光學(xué)元件混合編程軟件需要實現(xiàn)以下幾項功能:第一,應(yīng)用程序能夠提供計算所需初始相位分布圖樣,即對任意目標(biāo)圖樣(圖像數(shù)據(jù))元件相位分布初始值的輸入,軟件都能夠進(jìn)行相應(yīng)的計算,從而為程序運(yùn)行后期通過GS算法來實現(xiàn)對計算機(jī)光學(xué)元件的模擬設(shè)計提供所需必要數(shù)據(jù)。第二,軟件應(yīng)具有驗證功能,即能夠?qū)τ嬎愠龅墓鈱W(xué)元件設(shè)計參數(shù)模擬出的實際光束經(jīng)相位補(bǔ)償后得到的圖樣與實際光束圖樣進(jìn)行對比。第三,采用透射式計算機(jī)光學(xué)元件對混合編程軟件設(shè)計過程進(jìn)行模擬,以實現(xiàn)任意目標(biāo)圖樣(數(shù)據(jù))的模擬設(shè)計,進(jìn)而得出光學(xué)元件相應(yīng)的設(shè)計參數(shù)和相關(guān)圖樣數(shù)據(jù)文件,并能夠繪制出元件的相位浮雕高度圖樣。設(shè)計出的計算機(jī)光學(xué)元件混合編程軟件操作界面應(yīng)友好大方,方便用戶執(zhí)行各種操作,且執(zhí)行效率高。此外,軟件還應(yīng)具備數(shù)據(jù)瀏覽功能,使用戶可以方便快捷的瀏覽各種所需數(shù)據(jù)。整體而言,計算機(jī)光學(xué)元件混合編程軟件設(shè)計應(yīng)能夠較好的滿足實際應(yīng)用中用戶所需各項基本功能。
3.2 計算機(jī)光學(xué)軟件混合編程設(shè)計流程
首先,由用戶選擇預(yù)期的數(shù)據(jù)文件,即光學(xué)圖樣,并輸入初始參數(shù),然后對輸入的初始參數(shù)進(jìn)行判斷。若正確顯示出入射光斑和期望圖形,然后進(jìn)行迭代計算,并保存產(chǎn)生的中間數(shù)據(jù),經(jīng)一系列計算后顯示出系統(tǒng)模擬的元件模擬圖樣、相位浮雕高度圖樣以及迭代的次數(shù)。最后進(jìn)行驗證,并將驗證結(jié)果圖形顯示出來,供用戶瀏覽,最終完成計算機(jī)光學(xué)元件混合編程的設(shè)計。
4 總結(jié)
總而言之,計算機(jī)光學(xué)是光學(xué)領(lǐng)域發(fā)展的一種重要新興科目,也是計算機(jī)技術(shù)與光學(xué)技術(shù)有效融合的一個重要紐帶。設(shè)計并實現(xiàn)高集成化、高衍射效率、高運(yùn)算精度、自由靈活、輕巧小型的計算機(jī)光學(xué)元件混合編程軟件,對推動光學(xué)技術(shù)與光計算機(jī)進(jìn)一步發(fā)展具有重要的意義和影響。設(shè)計人員應(yīng)對現(xiàn)有軟件算法進(jìn)行不斷優(yōu)化,不斷提高軟件整體工作性能,努力克服計算機(jī)光學(xué)元件設(shè)計中的各種難題。
參考文獻(xiàn):
[1] 方恒楚.遺傳模擬退火算法在光學(xué)系統(tǒng)計算機(jī)輔助裝調(diào)中的應(yīng)用[D].北京交通大學(xué),2009.
[2] 姜瞳.基于飛秒激光直寫微光學(xué)元件的制備及性能表征[D].吉林大學(xué),2014.
[3] 杜源.基于VB及MATLAB混合編程的數(shù)字實時全息再現(xiàn)系統(tǒng)[D].昆明理工大學(xué),2011.
作者簡介:王雨農(nóng)(1994-),男,內(nèi)蒙古包頭人,專業(yè)或研究方向:計算機(jī)。