楊沈斌,江曉東,趙小艷
(南京信息工程大學 大氣科學與環境氣象國家級實驗教學示范中心,江蘇 南京 210044)
中國是水稻種植大國,水稻產量關系國民經濟的健康發展。保障水稻安全生產是農業、氣象等部門的工作重心之一,國家也亟需具備農業氣象學專業知識和技能的人才。南京信息工程大學為滿足我國對農業生產和農業氣象服務人才的需求,加大了對農業氣象方向學生農學實踐能力的培養,以江蘇省農業氣象重點實驗室、應用氣象學省級教學示范中心和按國家一級農業氣象試驗站標準建設的試驗基地為平臺,不斷優化實踐教學組織、課程設置和學生實踐能力的考核方法[1-2],探索實踐教學改革,將虛擬仿真技術優先引入農業氣象的實踐教學中[3-4]。學校建立了虛擬仿真實驗室,開發了以三維虛擬現實技術為核心的玉米生長發育動態及與氣象因子關系的虛擬仿真教學系統、人機交互式的光合作用儀虛擬仿真操作系統等。虛擬仿真教學系統的開發和應用,激發了學生學習專業知識的興趣,提高了學生動手操作能力,為學生實踐創新能力的培養搭建了平臺[5-6]。
筆者利用虛擬仿真技術開發了農業氣象學專業課程“作物生長模型”實踐教學平臺,降低了學生學習作物模型建模理論的難度。
“作物生長模型”課程的教學內容包括作物生長模式、發育期模擬、干物質積累與分配的模擬、葉面積指數模擬、產量模擬等,通過將作物生長過程中的各個階段或環節進行剖析,分析作物生長要素的動態變化規律,建立能夠模擬作物發育期、各器官生長量和最終產量的作物生長模型。該模型還需建立作物生長與環境因子(光、溫、水、肥)的關系,建模后能夠通過改變外部輸入,模擬不同農事管理、不同氣候變化情景下的作物生長和產量變化。因此,課程內容涉及到作物栽培學、植物生理學、農業氣象學、微氣象學、數學建模等多學科知識。
作物生長模型是從事農業氣象服務和相關科研工作的重要工具,而熟悉作物生長模型的運行對順利開展相關工作具有重要的意義。目前,作物生長模型已成為農業、氣象等部門業務工作的重要工具之一。利用作物生長模型,可以定量分析和評估不利氣象環境對作物生產的影響,可以定量評價不同農技措施對增產的效用,可以為育種提供評價依據。然而,從相關部門反饋的情況看,農業氣象學方向的畢業生操作和運行作物模型的能力還不夠強。因此,從2015年起,南京信息工程大學“作物生長模型”課程教學團隊修訂了作物生長模型的教學大綱,增加實踐課時,并積極配合本校大氣科學與環境氣象國家級實驗教學示范中心的建設,通過引入虛擬仿真技術,開發出適用于該課程的實踐教學平臺,增強學生操作和運行作物模型的能力[7]。
作物生長模型是一個龐大的數值模擬系統,其運行效率受計算機性能、模擬方案等多因素的影響。為此,教學團隊從教學實際出發,以水稻作物模型為例,在原模型系統的基礎上挑選模型核心模塊,優化模型結構,簡化模型輸入和參數設置,組建成適用于實踐教學的水稻作物模型。為了便于實驗教學,還開發了網絡版水稻作物生長模型建模和運行環境,方便學生直接登錄系統學習建模并完成實踐課程的學習,避免了單機版在多機環境下的安裝和運行困難。
依據“作物生長模型”課程的實踐教學大綱和教學要求,以水稻生長模型的建模和運行為例,設計了水稻作物模型虛擬仿真教學系統,其組成及功能見圖1。教學系統由4部分組成,其中建模部分是該系統的核心,包含了組成水稻作物模型的各模塊及其運行環境。學生在學習作物生長模型理論知識后,對照該系統的基本組成,就可以進一步理解作物生長模型的建模原理、方法以及各模塊的功能組成等。在模型建模部分還提供了一個集成化的模型運行環境,將模型的各組分串聯起來,通過引導學生設置模型運行環境(包括氣象數據、田間管理措施、作物參數),實現模型的一鍵式運行,并在運行后給出水稻生長要素的模擬結果圖。
該系統具有良好的人機交互性能,只要對模型運行環境進行設置,后臺即可返回運行結果,并以圖、表等多種形式表現出來。例如通過生育期模擬模塊,學生可以察看不同三基點溫度值和(或)不同溫度響應方程下溫度影響系數曲線的動態變化,加深對專業知識的理解和應用。再如生物量模擬部分,學生可以通過手動設置不同參數方案,察看不同方案下光合作用曲線的對比圖,更好地理解作物特性和環境因素對光合作用速率的影響。
除模型建模頁面外,作物知識頁面通過嵌入百度百科中的水稻知識頁,提供了豐富的水稻知識;實驗方法頁面作為理論課程內容的重要補充,提供了與水稻生長實驗有關的理論知識和實驗方法,以圖文并茂的形式展現作物實驗與作物生長模型建模之間的緊密關系;考核練習頁面主要是考查學生在通過課程學習后掌握知識的情況,在學生提交答案后,隨即給出考試成績作為實踐課評分的依據。

圖1 水稻作物模型虛擬仿真教學系統組成
為了實現該虛擬仿真教學系統,采用VisualC#和Matlab混合編程并結合ASP.NET網頁開發技術,生成一個基于B/S模式的在線教學系統[6,8-10]。學生可在校內通過瀏覽器隨時進入該教學系統,學習水稻生長模型的建模和運行。
該系統的開發平臺主要有Matlab 2012a和MicrosoftVisual Studio 2015,編程語言有C#、Matlab、HTML和JavaScript。首先,用Matlab語言構建水稻作物模型,形成一套運行流暢、輸入規范、輸出正確的模型函數代碼;然后,針對模型的每一個組成模塊,將分立的模型函數組織起來,編寫用于該模塊運行、繪圖等操作的總函數;隨后,將所有屬于該模塊的模擬函數使用Matlab的Compiler工具編譯生成.NET組件——動態鏈接庫(DLL)文件,供C#調用;最終,編譯生成PHENO、BIOMASS、LAI、YIELD、RUNMODEL等5個DLL文件。
在Microsoft Visual Studio 2015平臺下,創建基于C#語言的網站項目,并通過項目資源管理器引入上述5個DLL文件。隨后,針對該教學系統的幾個組成部分,搭建網站框架,設計各模塊頁面布局和樣式,并在對應的ASPX腳本文件內用C#語言編寫網頁執行腳本。
以水稻發育期模塊中溫度影響方程的建模和模擬為例。首先,在網頁中用文字闡述相關理論,然后在建模功能區嵌入三基點溫度的輸入文本框,再嵌入下拉選單控件,提供2種溫度影響函數供選擇,最后嵌入執行按鈕。執行后,在頁面固定位置顯示溫度對發育速率的影響曲線。學生可以通過設置不同的溫度參數和方程形式,比較各種設置下曲線的變化,使學生進一步理解溫度如何影響水稻生育期進程及其表現形式。根據上述設計,以雙線性溫度影響方程為例,使用Matlab語言編寫bilinearfigure.m程序,代碼如下:
function bilinearfigure(tb,tp,tm,fwidth,fheight,outputpath,filename)
tavg=5:45;
v = temperature_factor_bilinear(tavg,tb,tp,tm);
f = figure(′Visible′,′off′);
set(gcf,′Position′,[0,0,fwidth,fheight],′color′,[1,1,1]);
plot(tavg,v);
xlim([5,45]);
ylim([0,1]);
xlabel(′溫度(℃)′);
ylabel(′影響系數′);
set(gca,′FontSize′,8);
legend(′BILN′,′Location′,′northwest′);
legend(′boxoff′);
fn = filename;
path = strcat(outputpath,fn);
print(f,path,′-dpng′);
close(f);
end
將該程序隨其他相關函數程序文件一并編譯為.NET組件的PHENO.DLL文件,在ASPX腳本文件中調用該DLL文件,并在執行按鈕對應的事件函數內編寫執行代碼如下:
using Pheno;
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
…//省略默認引用
namespace CropModelingWeb {
public partial class pheno :System.Web.UI.Page {
protected void Btn1_Click(object sender,EventArgs e) {
Image1.ImageUrl = ″″;
string outputpath = ″D://CropModelingWeb/figures/″;
string outputname = ″beta_bilinear″;
Phenogyphenoc = new Phenogy();
MWArraytba = double.Parse(tb.Text);
MWArraytpa = double.Parse(tp.Text);
MWArraytma = double.Parse(tm.Text);
MWArraytsa = double.Parse(ts.Text);
MWArraywidthm = 310;
MWArrayheightm = 210;
…//略去其他表達式
if (Int16.Parse(funcselect.SelectedValue) == 0)
phenoc.bilinearfigure(tba,tpa,tma,widthm,heightm,(MWCharArray)outputpath,(MWCharArray)outputname);
Image1.ImageUrl = ″./figures/″ + outputname + ″.png″;
4) 超聲功率。將艾渣經干燥后進行粉碎,精密稱取0.5 g中粉(65目篩),室溫條件下,設定料液比1∶60(g∶mL),乙醇體積分數為75%,提取時間為30 min,提取次數為1次,考察超聲功率100 W、200 W、300 W、400W及500 W對艾渣總黃酮提取率的影響。總黃酮提取率計算方法同上。
Image1.Visible = true;
Image1.Width = 310;
Image1.Height = 210;
}}}}
將開發完成后的虛擬仿真教學系統通過實驗教學示范中心的Web服務器(IIS 7.0)發布。由于系統開發平臺Microsoft Visual Studio 2015提供了Web網站的一站式發布功能,因此,教學系統發布過程簡單、快捷。圖2為發布后的部分頁面的截圖。學生登錄該網站后,可以快速進入需要的功能板塊瀏覽、查詢、學習和操作與水稻作物模型有關的內容。授課教師在利用該系統進行授課時,一方面引導學生根據建模理論進行實際操練,另一方面講授與模型運行有關的數據輸入、參數設置、方案對比和結果分析,使學生能夠理論聯系實際、增強對模型的操作和運行能力。
為了檢驗學生使用作物生長模型的教學效果,在模型建模頁面內設計了“試一試”板塊,用于學生測試、調試和探索不同運行設置下模型模擬的結果。通過這個板塊,教師可以引導學生完成一些探索性項目,例如分析氣候增暖、CO2濃度增高情況下水稻生長的變化,為氣候變化下農作物生產決策提供依據。還可以通過該系統設計不同水稻品種參數,比較和分析不同品種水稻在不同區域的生產適宜性。因此,該虛擬仿真教學系統不但可以完成教學任務,還可以作為學生的科研創新平臺[11-12]。

圖2 水稻生長模型虛擬仿真教學系統的部分頁面
“作物生長模型”課程教學團隊以2016—2017學年第一學期應用氣象學專業2014級本科生的課程教學情況為依據,分析了水稻作物模型虛擬仿真教學系統在課程教學中發揮的作用。該課程作為生產實習集中實踐課程的組成部分,由一位教學團隊的教師負責課程教學,另一位專業教師負責課程教學效果評價。
從教學情況看,學生能夠根據授課教師的安排完成學習任務,包括作物模型理論的回顧、作物模型的功能組成、作物模型的運行環境設置和作物模型的運行及結果分析。學生在上機操作過程中表現出極大的興趣,通過引導學習建模環境和模型參數設置,熟練掌握了模型的運行。在整個實踐學習過程中,沒有出現模型運行中頻繁出錯和中斷的情況。最后,通過網站的考核練習,97%的學生所提交的模型運行報告內容充實,能夠一次獲得滿分,說明通過該平臺能夠有效提高學生運行作物模型的能力,達到課程設計的預期效果。
通過Visual C#、.NET和Matlab混合編程技術構建了水稻作物模型虛擬仿真教學系統。該系統作為理論課程的補充和學生運行作物模型的實踐平臺,為提高學生對作物生長模型的建模技術起到重要的作用。該系統作為虛擬仿真技術在實踐教學中的一個應用實例,說明虛擬仿真技術在實踐教學中的顯著優勢和良好的應用前景,可供其他類似課程的實踐教學平臺建設借鑒。
References)
[1] 景元書,李永秀,楊沈斌.高校應用氣象學專業創新實踐教學體系建設[J].教育教學論壇,2013(4):138-139.
[2] 張光亞,范伶俐,徐峰,等.國內高校應用氣象學專業人才培養方案比較研究[J].廣東海洋大學學報,2016,36(2):85-90.
[3] 彭麗霞,倪東鴻,周順武,等.短期氣候預測虛擬仿真實驗教學平臺建設思路[J].實驗技術與管理,2017,34(1):136-139.
[4] 方巍,劉琦.氣象云計算虛擬仿真實驗教學研究與探索[J].實驗技術與管理,2017,34(1):124-128.
[5] 楊民生,李建奇,梅彬運.虛擬仿真實驗教學體系的構建與實踐[J].信息系統工程,2016(11):97-99.
[6] 張敬南,張镠鐘.實驗教學中虛擬仿真技術應用的研究[J].實驗技術與管理,2013,30(12):101-104.
[7] 景元書,趙翔,胡繼超,等.農業氣象環境模擬的虛擬仿真實驗設計[J].科技創新導報,2015(31):178-179.
[8] 焦綱領,鄧建輝,韓嘯.MATLAB與Visual C#.NET混合編程[J].海軍航空工程學院學報,2008,23(1):109-111.
[9] 周峰.基于ASP.NET的計算機網絡虛擬實驗系統的研究與實現[D].成都:電子科技大學,2009.
[10] 張能立,謝佳,楊新泉.ASP.NET在網站開發中的應用[J].計算機與數字工程,2005,33(6):83-86.
[11] 曾琎.基于虛擬仿真系統的產品創新設計研究[D].武漢:武漢理工大學,2009.
[12] 廖維華,郭新宇,溫維亮,等.作物栽培虛擬仿真實驗教學系統的設計與實現[J].實驗技術與管理,2016,33(11):150-152.