蔣華勝, 林思宇, 周慶華
(長沙理工大學(xué) 物理與電子科學(xué)學(xué)院, 長沙410114)
電子技術(shù)作為二十世紀(jì)初開始發(fā)展起來的新興技術(shù),技術(shù)發(fā)展迅速,知識更新快[1],高校開設(shè)的實驗課程落后于電子技術(shù)的進(jìn)步,實驗室也無法及時裝備滿足實驗教學(xué)所需要的儀器設(shè)備[2-3]。 實體實驗需要的儀器設(shè)備在數(shù)量逐年遞增的同時,投資也已日趨緊張,多數(shù)高校都難以全面滿足儀器設(shè)備附加的教學(xué)實驗要求[4],同時在實體實驗操作時也會出現(xiàn)實驗設(shè)備老化,實驗時間多方受限等各種情況[5]。
因此,虛擬實驗應(yīng)時而生[6]。 虛擬實驗是指借助于計算機(jī)多媒體技術(shù)、虛擬現(xiàn)實和虛擬儀器等技術(shù)來模擬實際實驗的各個操作環(huán)節(jié)[7]。 實驗者可以像在實際的實驗環(huán)境中操作實驗[8]。 虛擬實驗?zāi)軌虿皇軅鹘y(tǒng)實驗在時間和空間的限制[9],無論是操作實驗的學(xué)生還是布置實驗的教師,都可以利用虛擬實驗系統(tǒng),進(jìn)行具體實驗[10]。 虛擬實驗注重的是實驗操作的交互性和實驗結(jié)果的仿真性[11-12]。
然而,現(xiàn)有常見的虛擬實驗系統(tǒng)一般未實現(xiàn)身份認(rèn)證,不能基于學(xué)生的個人身份保存及載入試驗結(jié)果、生成個人的實驗報告,因此使用并不方便。 所以,本文基于LabVIEW 開發(fā)平臺構(gòu)建了一個具有身份認(rèn)證功能的虛擬實驗系統(tǒng),該系統(tǒng)可以識別學(xué)生的個人身份,對個人實驗數(shù)據(jù)進(jìn)行保存及載入。 同時,可以根據(jù)個人實驗結(jié)果生成word 格式的實驗報告。
虛擬實驗系統(tǒng)具有注冊賬號、賬號登錄、修改密碼、刪除賬號、虛擬實驗操作、實驗參數(shù)保存及載入和報告生成等功能。 用模塊化設(shè)計的思想,把虛擬實驗系統(tǒng)的功能實現(xiàn)劃分為賬號注冊模塊、賬號登錄模塊、賬號管理模塊、虛擬實驗?zāi)K、參數(shù)保存及載入模塊、報告生成模塊。
其中,賬號注冊模塊、賬號登錄模塊與賬號管理模塊用于學(xué)生的身份認(rèn)證和賬號操作。 學(xué)生可以通過賬號注冊模塊進(jìn)行賬號密碼的注冊。 通過賬號登錄模塊進(jìn)行身份認(rèn)證,通過賬號管理模塊修改賬號密碼和刪除賬號。 虛擬實驗?zāi)K、參數(shù)保存及載入模塊與報告生成模塊構(gòu)成實驗系統(tǒng),在實驗系統(tǒng)中,學(xué)生可以通過虛擬實驗?zāi)K進(jìn)行虛擬實驗操作(本文具體以低通濾波實驗為例介紹了虛擬實驗?zāi)K的實現(xiàn))。 參數(shù)保存與載入模塊可以保存實驗數(shù)據(jù)并根據(jù)需要進(jìn)行載入。 報告生成模塊可以根據(jù)實驗結(jié)果自動生成實驗報告。
賬號注冊功能是學(xué)生進(jìn)入系統(tǒng)并進(jìn)行實驗操作的關(guān)鍵,賬號注冊之后可以通過登錄進(jìn)入虛擬實驗系統(tǒng)。 首先,在賬號注冊界面輸入需要注冊的賬號與密碼,點擊注冊按鈕,賬號與密碼將會被保存到系統(tǒng)文件中,然后可以使用此賬號登錄虛擬實驗系統(tǒng)。
為了不泄露學(xué)生的賬號密碼,本系統(tǒng)保存的密碼是通過LabVIEW 內(nèi)置的MD5 函數(shù)進(jìn)行加密之后的數(shù)據(jù)。
本文MD5 加密過程:首先對“字符串輸入控件”輸入的信息進(jìn)行補(bǔ)位,對信息數(shù)據(jù)的長度進(jìn)行64 取余數(shù);然后對MD5 參數(shù)進(jìn)行初始化處理,執(zhí)行四輪的四個非線性函數(shù),共執(zhí)行64 步;再對分組數(shù)據(jù)進(jìn)行處理,對輸出的數(shù)據(jù)進(jìn)行級聯(lián)后,輸出MD5值。
賬號登錄程序是進(jìn)入虛擬實驗系統(tǒng)并進(jìn)行實驗操作的程序,其主要作用是實現(xiàn)學(xué)生身份的辨別。賬號登錄程序是通過2 個字符串輸入控件作為登錄賬號、密碼的輸入界面,通過輸入界面將已注冊的賬號與密碼填入對應(yīng)的位置,點擊確定按鈕,登錄程序開始運行。 賬號密碼識別程序如圖1 所示。 首先,輸入的賬號與密碼將會通過數(shù)據(jù)流傳輸?shù)脚袛喑绦蛑?,判斷程序會根?jù)輸入的賬號,按照一定的格式生成路徑字符串,路徑字符串通過字符串至路徑轉(zhuǎn)換控件,得到對應(yīng)賬號密碼數(shù)據(jù)信息的路徑,然后通過“讀取文本文件”控件讀取該路徑下的密碼信息。如果“讀取文本文件”控件返回了錯誤輸出,則表示輸入的賬號沒有經(jīng)過注冊或者賬號填寫錯誤,與錯誤輸出連接的條件結(jié)構(gòu)會執(zhí)行“錯誤”分支,彈出對話框提示“賬號錯誤”,點擊對話框的確定按鈕將會退出登錄程序。 如果通過控件讀取到了賬號的密碼信息,說明賬號已注冊并讀取密碼信息,與錯誤輸出連接的條件結(jié)構(gòu)會執(zhí)行“無錯誤”分支,將讀取的密碼信息與輸入的密碼數(shù)據(jù)進(jìn)行比較。 由于保存的密碼數(shù)據(jù)是經(jīng)過MD5 算法加密的數(shù)據(jù),所以需要將輸入的密碼同樣進(jìn)行MD5 算法處理。 將進(jìn)行了MD5算法處理的密碼數(shù)據(jù)與讀取的密碼數(shù)據(jù)進(jìn)行對比,如果2 個密碼數(shù)據(jù)相同,說明賬號與密碼無錯誤,登錄成功并進(jìn)入虛擬實驗系統(tǒng);反之,說明密碼有錯誤,重新輸入。
圖1 賬號密碼識別流程Fig.1 The program diagram of account password identification
本文以低通濾波實驗為例介紹虛擬實驗項目的實現(xiàn)。 低通濾波程序如圖2 所示。 使用波形生成中的控件“基本函數(shù)發(fā)生器”產(chǎn)生信號。 通過創(chuàng)建信號發(fā)生器的各種輸入控件,可以控制基本函數(shù)發(fā)生器產(chǎn)生各種不同的基本信號。 使用基本函數(shù)發(fā)生器的信號類型輸入控件,可以選擇幾種不同的信號波形,通過頻率、幅值、相位、占空比和偏移量各個輸入控件可以改變產(chǎn)生波形的各種參數(shù),獲得比較適宜的信號波形,為了能與噪聲信號相加,對信號波形加窗處理,通過hanning 窗處理的信號就可以直接與噪聲信號相加。 噪聲方面,虛擬實驗系統(tǒng)使用了信號生成中的高斯白噪聲作為噪聲源,可以通過標(biāo)準(zhǔn)差輸入控件控制高斯白噪聲產(chǎn)生噪聲信號的量。 將高斯白噪聲加入到信號波形得到可以進(jìn)行濾波處理的混合信號。 將混合信號輸入到條件結(jié)構(gòu)中,通過濾波器選擇控件可以選擇不同的低通濾波器進(jìn)行虛擬實驗,通過濾波器控件后就得到了濾波之后的信號。
圖2 低通濾波虛擬實驗程序圖Fig.2 The program diagram of low pass filter virtual experiment
在虛擬實驗系統(tǒng)中,實驗過程中保存的參數(shù)是每個學(xué)生的個人數(shù)據(jù),當(dāng)學(xué)生點擊保存參數(shù)按鈕時,參數(shù)保存與載入程序開始運行。 參數(shù)保存與載入程序工作過程如圖3 所示。 首先,通過學(xué)生的賬號,生成此賬號的個人數(shù)據(jù)保存路徑。 同時,通過VI 服務(wù)引用控件,創(chuàng)建VI 類的方法—控件值—獲取全部,獲取VI 中全部控件的設(shè)置參數(shù)。 然后將所有的設(shè)置參數(shù)使用控件“寫入二進(jìn)制文件”將二進(jìn)制數(shù)據(jù)保存到個人數(shù)據(jù)信息中。 讀取參數(shù)設(shè)置時,首先獲得對應(yīng)的個人數(shù)據(jù)信息文件的路徑,讀取二進(jìn)制數(shù)據(jù),對二進(jìn)制數(shù)據(jù)解捆綁。 然后通過VI 服務(wù)引用控件,創(chuàng)建VI 類的方法—控件值—設(shè)置,將解捆綁的數(shù)據(jù)導(dǎo)入設(shè)置控件,就可以將保存的參數(shù)重新寫入對應(yīng)的參數(shù)位置。
首先根據(jù)實驗內(nèi)容創(chuàng)建一個word 模板。 將實驗原理、過程、結(jié)果等按照一定的格式排列。 并在模板文檔創(chuàng)建書簽,通過書簽將學(xué)生具體的實驗步驟與實驗結(jié)果插入到實驗報告中的特定位置。
實驗報告生成程序如圖4 所示。 首先,新建報表控件根據(jù)登錄賬號打開文件夾中的word 模板文檔,然后使用添加報表文本控件和添加控件圖像至報表控件,使用word 模板文檔中的書簽設(shè)置添加報表文本控件和添加控件圖像至報表控件的MS Office 參數(shù),將實驗中的各個控件的設(shè)置參數(shù)以及波形圖保存到word 模板文檔中的對應(yīng)位置。 最后通過保存報表至文件控件,將保存的word 文檔保存到該賬號下的指定文件夾中。
圖3 實驗參數(shù)保存與讀取過程圖Fig.3 The program diagram of saving and reading experimental parameters
圖4 實驗報告生成過程圖Fig.4 The program diagram of experiment report generation
本實驗系統(tǒng)的低通濾波實驗操作面板如圖5 所示。 學(xué)生進(jìn)行實驗時,通過信號類型選擇控件可以選擇正弦波、方波、鋸齒波和三角波四種波形中的一種進(jìn)行實驗。 選擇波形后,可以使用頻率輸入控件改變波形的頻率,使用幅值輸入控件改變波形的幅值大小,使用相位輸入控件改變波形的初始相位,使用偏移量輸入控件使波形上下偏移,方波占空比輸入控件可以改變方波的占空比。 同時使用滑動桿控件可以控制混入高斯白噪聲的量。 通過各種參數(shù)的設(shè)置,就可以獲得比較適和濾波實驗的混合信號波形,然后進(jìn)行低通濾波實驗。 在低通濾波實驗中,低通濾波器實驗有兩種選擇,分別是巴特沃斯低通濾波器和契比雪夫低通濾波器。 學(xué)生可以通過面板上的控件選擇實驗的濾波器,通過輸入控件低通對濾波器的參數(shù)進(jìn)行設(shè)置,可以設(shè)置的參數(shù)包括階數(shù)、采樣頻率和低截止頻率。 在濾波器實驗中,學(xué)生通過各個輸入控件改變?yōu)V波器參數(shù),得到比較理想的濾波結(jié)果。
由于在實驗過程中,可能會出現(xiàn)一些突發(fā)狀況需要保存此次未完成的實驗數(shù)據(jù),此時可以使用保存參數(shù)按鈕,保存當(dāng)前的參數(shù)設(shè)置信息,在下次實驗時,可以使用讀取參數(shù)按鈕獲得上次保存的參數(shù)設(shè)置信息。
完成虛擬實驗后,需要對實驗的結(jié)果進(jìn)行保存。學(xué)生只需要使用報告生成功能,實驗系統(tǒng)就會將實驗結(jié)果保存到模板文檔中的指定位置,得到實驗報告。 實驗報告如圖6 所示。
圖5 濾波器實驗的前面板Fig.5 The front panel of the filter experiment
圖6 生成的實驗報告Fig.6 Generated experiment report
本文基于LabVIEW 開發(fā)環(huán)境,構(gòu)建了一個基于身份認(rèn)證的虛擬實驗系統(tǒng),并以虛擬實驗為例。 在虛擬實驗中,通過賬號注冊以及登錄實現(xiàn)身份認(rèn)證功能,在實驗操作過程中,可以將實驗數(shù)據(jù)進(jìn)行保存,在實驗結(jié)束時可以自動生成word 文檔格式的實驗報告。 本實驗通過虛擬仿真,方便學(xué)生操作,便于學(xué)生觀察實驗結(jié)果。
由于篇幅的限制,本文的虛擬實驗?zāi)K僅介紹了低通濾波實驗項目,未來可擴(kuò)展更多的實驗項目。 同時,可以考慮將虛擬實驗與實際實驗相結(jié)合,實現(xiàn)虛實結(jié)合實驗。 在賬號管理方面,可以增加管理員賬戶,以方便對本系統(tǒng)的學(xué)生用戶及實驗?zāi)K進(jìn)行管理。