李鵬等
【摘 要】基于MATLAB Web Server和網(wǎng)頁開發(fā)技術(shù),對火炮原理課程用網(wǎng)絡(luò)虛擬實驗系統(tǒng)進(jìn)行了研究,闡述了虛擬實驗系統(tǒng)的工作原理、環(huán)境配置及開發(fā)的關(guān)鍵技術(shù),并給出了網(wǎng)絡(luò)虛擬實驗系統(tǒng)實例。
【關(guān)鍵詞】MATLAB Web Server;虛擬;實驗
0 引言
在原理課程教學(xué)過程中,如果能夠?qū)⒗碚摻虒W(xué)與實驗教學(xué)緊密結(jié)合,對于加深學(xué)生對課程內(nèi)容的理解無疑是大有裨益的。然而在教學(xué)實踐中真正實現(xiàn)這一點(diǎn)卻并非易事。以筆者講授的火炮原理課程為例,該課程內(nèi)容龐雜,涉及內(nèi)外彈道、強(qiáng)度理論、機(jī)械運(yùn)動等多個學(xué)科,加之學(xué)時緊張,難以安排專門針對本課程的實驗環(huán)節(jié),即使開展數(shù)值模擬計算,也由于課程理論的復(fù)雜性和學(xué)生普遍缺乏編程基礎(chǔ)而難以取得良好效果。網(wǎng)絡(luò)虛擬實驗系統(tǒng)的出現(xiàn)為解決上述難題提供了一個全新的思路,網(wǎng)絡(luò)虛擬實驗系統(tǒng)不僅可以作為課堂教學(xué)的補(bǔ)充,而且可以培養(yǎng)學(xué)生的自主學(xué)習(xí)能力,成為實驗教學(xué)發(fā)展的重要方向。
本文基于MATLAB軟件,進(jìn)行了B/S(Browser/Server)模式的網(wǎng)絡(luò)虛擬實驗系統(tǒng)研究。MATLAB是Math Works公司推出的一種優(yōu)秀的科學(xué)及工程計算軟件,具有高效的數(shù)值計算和強(qiáng)大的圖形處理能力,其Web Server組件將MATLAB的強(qiáng)大計算能力和Web瀏覽器的遠(yuǎn)程訪問能力相結(jié)合,客戶端通過Web瀏覽器向服務(wù)器發(fā)出請求和傳遞參數(shù),服務(wù)器進(jìn)行相關(guān)計算后可生成動態(tài)頁面返回客戶端。該虛擬實驗系統(tǒng)將大量的計算程序設(shè)計在服務(wù)器端運(yùn)行,位于客戶端的學(xué)生不必具有編程基礎(chǔ),僅需一個Web瀏覽器即可進(jìn)行虛擬實驗,從而檢驗課程理論知識,加深學(xué)習(xí)認(rèn)知。
1 工作原理
1.1 MATLAB Web Server 簡介
MATLAB Web Server 主要由matlabserver 和matweb兩部分組成。matlabserver是一個MATLAB Web服務(wù)器,用來管理Web應(yīng)用程序和MATLAB之間的通信;matweb.exe是一個可執(zhí)行程序,是MATLAB Web Server的TCP/IP客戶端,它利用公共網(wǎng)關(guān)接口(CGI)從輸入頁面HTML文件中提取用戶數(shù)據(jù)傳遞給matlabserver.exe進(jìn)行處理。
MATLAB Web Server 的工作流程如圖1所示。
用戶在客戶端輸入網(wǎng)頁上填寫相應(yīng)數(shù)據(jù)后,將任務(wù)提交給服務(wù)器端,服務(wù)器接收任務(wù)并把數(shù)據(jù)傳遞給matweb.exe,之后matlabserver將數(shù)據(jù)傳遞給MATLAB,MATLAB調(diào)用內(nèi)部函數(shù)執(zhí)行相應(yīng)的計算任務(wù)。計算完畢后,matweb根據(jù)輸出模板,將從matlabserver傳回的數(shù)據(jù)填入到指定范圍并構(gòu)造出網(wǎng)頁文件。最后Web服務(wù)器將matweb生成的頁面文件和圖形文件返回客戶端,并在瀏覽器上顯示結(jié)果。
在應(yīng)用MATLAB Web Server時,應(yīng)對其配置文件matweb.conf進(jìn)行配置,matweb.conf文件的內(nèi)容如下:
[應(yīng)用程序名]
mlserver=服務(wù)器名
mldir=應(yīng)用程序所在路徑
每增加一個MATLAB Web應(yīng)用,就需要增加一項上述配置。
1.2 運(yùn)行環(huán)境配置
服務(wù)器端要提供WWW服務(wù),還必須有一個傳統(tǒng)的Web服務(wù)器,常用的有IIS服務(wù)器和Apache Web Server。IIS(Internet Information Server)是微軟公司開發(fā)的信息服務(wù)器,是在windows環(huán)境下運(yùn)行的最主要的Web服務(wù)器;Apache則具有開源、高效、配置靈活、安全等優(yōu)點(diǎn)。本文選用的是IIS服務(wù)器。
客戶端瀏覽器的選擇取決于用戶的使用習(xí)慣,可選擇windows自帶的IE瀏覽器,也可采用Firefox、chrome等第三方瀏覽器。
2 網(wǎng)絡(luò)虛擬實驗系統(tǒng)的構(gòu)建
2.1 虛擬實驗?zāi)P偷慕?/p>
火炮原理課程,是研究火炮射擊過程中一系列復(fù)雜現(xiàn)象的學(xué)科,其中最具代表性同時又是學(xué)生理解難點(diǎn)的是內(nèi)彈道過程和外彈道過程,內(nèi)彈道過程決定了火炮的膛壓、初速,外彈道過程決定了火炮的射程、落點(diǎn),掌握了這兩個過程,就抓住了火炮射擊的主線,抓住了課程的重點(diǎn),本文選取了火炮內(nèi)彈道計算模型和外彈道計算模型作為虛擬實驗系統(tǒng)的基礎(chǔ)。內(nèi)外彈道方程組都是微分方程組,不具備熟練的編程技巧很難求解,MATLAB中提供了專門用于求解微分方程組的函數(shù)ode45,可以使微分方程組的求解過程大大簡化,更加凸顯了MATLAB在數(shù)學(xué)計算中的優(yōu)勢。
2.2 創(chuàng)建輸入頁面
一個虛擬實驗系統(tǒng),首先要建立輸入頁面,用戶通過頁面輸入?yún)?shù)和請求,之后頁面將相應(yīng)內(nèi)容傳送到服務(wù)器。輸入頁面可以直接使用html語言建立,也可利用Frontpage、Dreamweaver等開發(fā)工具建立。
輸入頁面中必須包含與MATLAB Web服務(wù)相關(guān)的關(guān)鍵代碼:
% 設(shè)置一隱藏輸入框mfile,其值為在MATLAB Web服務(wù)器中運(yùn)行的m文件的名稱。
% 創(chuàng)建“提交”或“計算”按鈕。
2.3 編寫虛擬試驗系統(tǒng)計算m文件
用于計算的m文件是虛擬實驗系統(tǒng)的主體,它必須是一個function函數(shù),用于接收、處理頁面輸入的數(shù)據(jù),并將結(jié)果輸出為html文件。m文件由MATLAB腳本語言編寫,可靈活調(diào)用MATLAB內(nèi)置的各個函數(shù),如上述用于求解微分方程組的ode45函數(shù)等,其數(shù)據(jù)結(jié)構(gòu)、運(yùn)算過程與MATLAB其他程序基本相同。
輸出結(jié)果時首先將計算結(jié)果寫入到一個結(jié)構(gòu)數(shù)組outstruct中,如:outstruct.h=h;然后調(diào)用htmlrep函數(shù)將結(jié)果返回給輸出文件,格式為:
retstr=htmlrep (outstruct,temlatefile);其中templatefile是一個預(yù)先編制好的用于輸出的HTML文件。
2.4 創(chuàng)建輸出頁面
輸出頁面包含頁面布局、文字說明、圖形等信息,是最終呈現(xiàn)給用戶的界面。輸出頁面通常預(yù)先定義模板,再由m文件調(diào)用。模板中用到MATLAB計算程序輸出變量的地方用用$var_ name$的形式替換即可。如果輸出結(jié)果中包含圖形,則輸出頁面模板中要預(yù)先寫好,圖形的文件名也作為變量保存在(下轉(zhuǎn)第170頁)(上接第154頁)outstruct數(shù)組中。
3 虛擬實驗系統(tǒng)實例
本文根據(jù)上述開發(fā)過程,編寫了火炮原理課程網(wǎng)絡(luò)虛擬實驗系統(tǒng)。學(xué)生進(jìn)入頁面后,通過下拉框可選擇不同種類的火炮,頁面即給出該火炮的基本參數(shù),同時頁面提供了五個輸入?yún)?shù),分別是裝藥量、藥室容積、彈丸質(zhì)量、環(huán)境溫度和射角,輸入五個參數(shù),點(diǎn)擊“計算”按鈕,頁面即返回計算結(jié)果和相應(yīng)的內(nèi)外彈道曲線圖。如圖2所示。
通過改變輸入?yún)?shù),學(xué)生可以直觀感受到某一參數(shù)的變化對火炮射擊帶來的影響,如裝藥量的增加會帶來膛壓上升,射程增大等,從而更深刻地理解理論知識,加深對課程的印象。該虛擬實驗系統(tǒng)不占用課時,可由學(xué)生利用課余時間自行完成,從而成為課程教學(xué)的必要補(bǔ)充。
4 結(jié)束語
基于MATLAB Web Server的網(wǎng)絡(luò)虛擬實驗系統(tǒng),充分發(fā)揮了MATLAB軟件強(qiáng)大的數(shù)值計算功能,又利用了網(wǎng)頁豐富多彩的表現(xiàn)形式,給用戶提供了一個簡單易用、功能強(qiáng)大的網(wǎng)絡(luò)實驗環(huán)境,成為理論課程教學(xué)的重要拓展內(nèi)容,在遠(yuǎn)程教學(xué)領(lǐng)域擁有廣闊的應(yīng)用前景。
【參考文獻(xiàn)】
[1]徐望明.基于MATLAB Web Server的數(shù)字圖像處理仿真實驗[J].信息技術(shù),2007,31(10).
[2]何強(qiáng),何英.MATLAB擴(kuò)展編程[M].清華大學(xué)出版社,2002.
[3]鐘麟,王峰.MATLAB仿真技術(shù)與應(yīng)用教程[M].國防工業(yè)出版社,2004.
[4]錢林方.火炮彈道學(xué)[M].北京理工大學(xué)出版社,2009.
[責(zé)任編輯:劉展]