国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于物聯(lián)網(wǎng)的圖形化虛擬仿真實(shí)驗(yàn)平臺(tái)設(shè)計(jì)

2017-02-16 11:01領(lǐng)兄
現(xiàn)代電子技術(shù) 2017年1期
關(guān)鍵詞:虛擬實(shí)驗(yàn)室

領(lǐng)兄

摘 要: 提出的Web環(huán)境下的虛擬仿真平臺(tái)基于B/S結(jié)構(gòu),服務(wù)器端采用MySQL數(shù)據(jù)庫(kù),使用Java語(yǔ)言編寫接口程序,從數(shù)據(jù)庫(kù)中讀取模型數(shù)據(jù)并生成Simulink仿真程序,運(yùn)算核心Matlab運(yùn)行M文件,通過(guò)調(diào)用Java接口程序?qū)υ撃P臀募M(jìn)行仿真并返回仿真結(jié)果。最后,結(jié)合兩個(gè)仿真實(shí)例來(lái)測(cè)試基于網(wǎng)絡(luò)的虛擬仿真平臺(tái),驗(yàn)證了該平臺(tái)的有效性。

關(guān)鍵詞: 虛擬仿真平臺(tái); Matlab; Simulink; 虛擬實(shí)驗(yàn)室

中圖分類號(hào): TN911?34; TM417 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)01?0032?04

Abstract: The virtual simulation platform proposed in this paper and working in Web environment is based on B/S structure. The MySQL is adopted by the server. The Java language is used to profile the interface program, read the model data in database, and generate the Simulink simulation program. Matlab as the operation core is used to run the M?file to simulate the model file by calling the Java interface program and feed the simulation results back. The virtual simulation platform based on network was tested by means of two simulation examples to verify the validity of the platform.

Keywords: virtual simulation platform; Matlab; Simulink; virtual laboratory

近年來(lái)高校規(guī)模不斷增大,學(xué)生人數(shù)的不斷增加造成實(shí)驗(yàn)室設(shè)備資源緊張、不能滿足學(xué)生要求的現(xiàn)象[1]。同時(shí)實(shí)驗(yàn)設(shè)備老化嚴(yán)重、實(shí)驗(yàn)設(shè)備技術(shù)上的落后都會(huì)影響學(xué)生的實(shí)驗(yàn)課質(zhì)量。虛擬實(shí)驗(yàn)室的提出打破了傳統(tǒng)實(shí)驗(yàn)室的約束,突破了傳統(tǒng)實(shí)驗(yàn)室地域與時(shí)間的限制,進(jìn)一步促進(jìn)學(xué)校教學(xué)質(zhì)量的提升,推進(jìn)實(shí)驗(yàn)從驗(yàn)證性到探索性的轉(zhuǎn)變,實(shí)現(xiàn)了教學(xué)實(shí)驗(yàn)跨越式的發(fā)展[2]。

1 基于網(wǎng)絡(luò)的虛擬仿真平臺(tái)的總體設(shè)計(jì)

1.1 系統(tǒng)的設(shè)計(jì)思想

隨著網(wǎng)絡(luò)應(yīng)用的日益普及與物聯(lián)網(wǎng)技術(shù)的發(fā)展,基于Web仿真已經(jīng)成為仿真領(lǐng)域的研究熱點(diǎn),課題提供了圖形化的虛擬仿真實(shí)驗(yàn)平臺(tái)解決辦法,以FLASH+Servlet+MySQL作為基礎(chǔ)平臺(tái)架構(gòu)[3]。

基于網(wǎng)絡(luò)的虛擬仿真平臺(tái)的實(shí)現(xiàn)方式設(shè)計(jì)如下:網(wǎng)絡(luò)用戶通過(guò)瀏覽器就能夠打開該交互界面進(jìn)行Simulink建模和仿真,網(wǎng)絡(luò)平臺(tái)以網(wǎng)頁(yè)的形式提供FLASH技術(shù)搭建的交互式圖形界面;當(dāng)用戶在圖形界面中完成建模后,將模型數(shù)據(jù)通過(guò)訪問(wèn)Servlet的方式傳送到數(shù)據(jù)庫(kù)中,然后Matlab通過(guò)Java接口讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息并進(jìn)行仿真,最后將仿真結(jié)果返回到數(shù)據(jù)庫(kù)中并由客戶端Web瀏覽器讀取數(shù)據(jù)庫(kù)中的結(jié)果并顯示。

1.2 平臺(tái)架構(gòu)的確定

基于B/S模式的優(yōu)點(diǎn),本文開發(fā)的基于網(wǎng)絡(luò)的虛擬仿真平臺(tái)采用B/S結(jié)構(gòu),B/S結(jié)構(gòu)是以Web技術(shù)為基礎(chǔ),它主要是基于HTTP協(xié)議[4]?;贐/S模式的網(wǎng)絡(luò)虛擬仿真平臺(tái)如圖1所示。Web服務(wù)器的主要作用是提供Web接入服務(wù)、開放式交互實(shí)驗(yàn)環(huán)境以及動(dòng)態(tài)網(wǎng)頁(yè)的生成;數(shù)據(jù)分析服務(wù)負(fù)責(zé)數(shù)據(jù)的分析與處理,并將數(shù)據(jù)處理的結(jié)果返回?cái)?shù)據(jù)庫(kù)服務(wù)器進(jìn)行保存,也可以將處理結(jié)果通過(guò)Web返回到客戶端;數(shù)據(jù)庫(kù)的主要作用是配合動(dòng)態(tài)網(wǎng)頁(yè)的生產(chǎn)以及實(shí)驗(yàn)數(shù)據(jù)的存儲(chǔ)和管理。

1.3 系統(tǒng)的功能模塊設(shè)計(jì)

從功能結(jié)構(gòu)上說(shuō),基于網(wǎng)絡(luò)的虛擬仿真平臺(tái)由圖形化建模仿真界面模塊、Simulink模型仿真模塊、Simulink模型生成模塊等三大功能模塊組成,具體如圖2所示。

2 虛擬實(shí)驗(yàn)平臺(tái)客戶端的設(shè)計(jì)

2.1 客戶端界面的實(shí)現(xiàn)

2.1.1 模塊原件庫(kù)的搭建

Simulink的仿真組建是以樹狀系統(tǒng)呈現(xiàn)的,清晰而且方便找到需要的模塊?;谖锫?lián)網(wǎng)的虛擬實(shí)驗(yàn)平臺(tái)的圖形化交互界面提供各種對(duì)應(yīng)的模塊,也是以多級(jí)樹狀結(jié)構(gòu)展現(xiàn)在用戶面前,確保用戶可以簡(jiǎn)單、快速地找到自己需要的模塊[5]。模塊選擇區(qū)域在左上角,每一個(gè)子菜單為一個(gè)模塊庫(kù)。

AS3.0中有許多組件,組件有很多優(yōu)點(diǎn)。優(yōu)點(diǎn)一是使應(yīng)用程序的設(shè)計(jì)過(guò)程和編碼過(guò)程分開,這無(wú)疑大大地增加了效率。利用FLASH可以很容易地讀取XML文件的性質(zhì),可以將樹形結(jié)構(gòu)的內(nèi)容事先寫進(jìn)一個(gè)XML文檔中,這樣就可以動(dòng)態(tài)生成一個(gè)樹形結(jié)構(gòu)[6]。當(dāng)然在AS3.0中,也有XML的內(nèi)置類,所以也可以將XML文檔的內(nèi)容直接寫入腳本代碼中。

2.1.2 模型繪制

客戶端左上角是模塊的選擇區(qū),點(diǎn)擊想要選擇的模塊,右邊的繪圖區(qū)會(huì)出現(xiàn)一個(gè)模塊,它在固定的位置出現(xiàn),可以手動(dòng)拖動(dòng)。這些模塊是圖形交互界面的重點(diǎn)內(nèi)容。這些信息被儲(chǔ)存在Tree的XML文件里,通過(guò)讀取XML文件中的模塊的幾何參數(shù),就可以在繪圖區(qū)對(duì)模塊進(jìn)行繪制。被拖入工作繪圖區(qū)的模塊需要被記錄下來(lái),它被記錄在block.as腳本文件中。

2.1.3 連線的搭建

2.1.4 主時(shí)間軸的功能控制

在圖形化交互界面中設(shè)置了三個(gè)基本的功能按鈕,分別是“新建”“連線”“提交”。新建按鈕如果被按下,首先,圖像交互區(qū)當(dāng)時(shí)的任何模塊或者連線都會(huì)被清空,相應(yīng)地,在BlockArray和LineArray中的數(shù)據(jù)也會(huì)被清空,等待存放新工程中的元素??梢栽诎粹o旁的輸入文本框中為新建的工程取一個(gè)名字,系統(tǒng)也會(huì)提供一個(gè)沒(méi)人叫的名稱,接下來(lái)就該畫圖了。

“連線”按鈕是用來(lái)切換當(dāng)前狀態(tài)為“連線狀態(tài)”的。當(dāng)點(diǎn)擊“連線”按鈕時(shí),就會(huì)置連線狀態(tài)標(biāo)志drawflag為1。此時(shí)再分別點(diǎn)擊源端口和目標(biāo)端口就能生成一條從源端口到目標(biāo)端口的連線,生成這條連線的函數(shù)為drawLine。

當(dāng)點(diǎn)擊模塊的端口時(shí),需要一個(gè)算法讓系統(tǒng)確定是哪一個(gè)端口被選定。當(dāng)選定連線按鈕,點(diǎn)擊一個(gè)端口時(shí),開始遍歷每一個(gè)模塊和每一個(gè)模塊的端口,計(jì)算端口到點(diǎn)擊點(diǎn)的距離,選擇到點(diǎn)擊點(diǎn)最短的端口。當(dāng)源端口和目標(biāo)端口都確定下來(lái)時(shí),即可畫一條從源端口到目標(biāo)端口的折線[7]??梢詫?duì)連線進(jìn)行修改,以達(dá)到美觀的效果,用鼠標(biāo)點(diǎn)擊連線,拖動(dòng)就可以移動(dòng)。

當(dāng)Simulink框圖建立好之后,這時(shí)需要點(diǎn)擊“提交”按鈕,即可將所有的模塊與模塊間連線的信息都存儲(chǔ)到數(shù)據(jù)庫(kù)中。

3 虛擬實(shí)驗(yàn)平臺(tái)服務(wù)器端的設(shè)計(jì)

3.1 客戶端與服務(wù)器交互的實(shí)現(xiàn)

3.1.1 FLASH連接Servlet

在將FLASH的內(nèi)容存儲(chǔ)到數(shù)據(jù)庫(kù)的階段,Servlet根據(jù)FLASH端發(fā)送的請(qǐng)求生成響應(yīng)內(nèi)容并將其傳給數(shù)據(jù)庫(kù)。在讀數(shù)據(jù)庫(kù)的階段,主要使用Servlet讀取數(shù)據(jù)庫(kù)的數(shù)據(jù),整個(gè)交互流程如圖3所示。

3.1.2 Servlet訪問(wèn)MySQL

選擇的數(shù)據(jù)庫(kù)是MySQL,所以,要先安裝MySQL和MySQL?front。MySQL?front用來(lái)建立數(shù)據(jù)庫(kù)[8]。建立一個(gè)叫webSimulink的數(shù)據(jù)庫(kù),建立四張表status,Simulinkmodel,Simulinkconnection,result,每張表的意義如下所示。

(1) status表

新建工程時(shí)會(huì)給出一個(gè)默認(rèn)的工程名,如果需要自己命名,可以自定義工程名,也可以輸入文本框修改它[9]。表中包含工程名,除了工程名,還有狀態(tài)變量status。status=1表示工程還未編譯;status=2表示工程成功編譯。status表的結(jié)構(gòu)如表1所示。

(2) Simulinkmodel表

Simulinkmodel表用來(lái)存儲(chǔ)被拖入主工作區(qū)的Block,每一個(gè)Block都有對(duì)應(yīng)的表,表中存儲(chǔ)的信息是名稱、路徑、坐標(biāo)值、輸入輸出端口數(shù)目、參數(shù)個(gè)數(shù)、參數(shù)值、所屬的工程名等,表的具體結(jié)構(gòu)見表2。

(3) Simulinkconnection表

Simulinkconnection表用來(lái)存儲(chǔ)連線信息。每個(gè)連線都有一個(gè)這樣的表格,它存儲(chǔ)的是連線的源Block名、目標(biāo)Block名、源端口號(hào)、目標(biāo)端口號(hào)以及所屬的工程名等,具體信息見表3。

(4) result表

result表用于存儲(chǔ)Matlab仿真后返回的仿真結(jié)果,仿真結(jié)果主要包括所屬工程名、生成的圖形文件以及生成的數(shù)據(jù)文件等,result表的結(jié)構(gòu)如表4所示。

3.2 Matlab?Simulink仿真的實(shí)現(xiàn)

3.2.1 Matlab與MySQL的通信

數(shù)據(jù)從客戶端傳送到服務(wù)器端,數(shù)據(jù)庫(kù)接收到數(shù)據(jù)并存儲(chǔ)后,需要做的就是服務(wù)器端對(duì)數(shù)據(jù)進(jìn)行仿真。用Java編寫服務(wù)器程序,程序任務(wù)將存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)提取出來(lái),轉(zhuǎn)化成可以進(jìn)行仿真的程序,仿真結(jié)束后,將仿真結(jié)果存儲(chǔ)回?cái)?shù)據(jù)庫(kù),最終返回到客戶端。服務(wù)器程序首先要查看工程狀態(tài),然后再與數(shù)據(jù)庫(kù)建立連接。要保證客戶端出現(xiàn)異常時(shí),仿真在服務(wù)器端不受影響。

新建一個(gè)Java類:MatservMain.Java的目的是控制Matlab對(duì)數(shù)據(jù)庫(kù)進(jìn)行讀取操作和與仿真工作相關(guān)的Matlab命令。這樣,在運(yùn)行Matlab時(shí),可以用調(diào)用這個(gè)類的方法進(jìn)行讀寫數(shù)據(jù)庫(kù)和仿真。仿真程序能夠調(diào)用Simulink功能,并復(fù)現(xiàn)出客戶端提交時(shí)模型搭建的樣子,并對(duì)框圖進(jìn)行仿真。

3.2.2 運(yùn)用Matlab?M文件的仿真

服務(wù)器端傳輸并存儲(chǔ)在數(shù)據(jù)庫(kù)的數(shù)據(jù)用Matlab中的M文件實(shí)現(xiàn)仿真。M文件的仿真方式就是用命令行控制Matlab的動(dòng)作。

仿真調(diào)用的是Simulink。傳統(tǒng)的Simulink建模,雙擊模塊,可以在參數(shù)設(shè)置框中對(duì)模塊進(jìn)行參數(shù)設(shè)置。之后點(diǎn)擊仿真按鈕進(jìn)行仿真。

輸入過(guò)后再單擊命令行窗口菜單中的File?>Open,則可以看到通過(guò)Simulink命令新建的sample模型,文件名為sample.mdl。點(diǎn)擊“打開”,則可以看到對(duì)應(yīng)的Simulink系統(tǒng)框圖。

命令行控制Simulink仿真可行,就可以嘗試用服務(wù)器程序生成命令行程序。在MatservMain.Java中,主要靠GetBlock函數(shù)和GetConnection函數(shù)提取數(shù)據(jù)庫(kù)中的數(shù)據(jù),實(shí)現(xiàn)在Matlab中重構(gòu)系統(tǒng)框圖。

GetBlock函數(shù)和GetConnection函數(shù)的主要任務(wù)是從數(shù)據(jù)庫(kù)提取之前存儲(chǔ)表中的block和line的數(shù)據(jù),并生成相應(yīng)的添加模塊和連線的Simulink命令。

最后編寫mdlserver.m。mdlserver.m文件負(fù)責(zé)調(diào)用Java類和數(shù)據(jù)庫(kù)驅(qū)動(dòng),提取數(shù)據(jù)庫(kù)數(shù)據(jù)并仿真,最后返回仿真結(jié)果并存儲(chǔ)回?cái)?shù)據(jù)庫(kù),再由Servlet反饋給客戶端用戶。

4 多客戶端實(shí)例仿真

4.1 前臺(tái)

4.1.1 FLASH圖形界面效果圖

客戶端的界面有三部分,左上角是選擇模塊的元件庫(kù),右邊是主工作區(qū),左下角是信息提示和幫助。

在左上方的樹狀原件庫(kù)中選取需要的Block模塊,模塊會(huì)出現(xiàn)在主工作區(qū),可以對(duì)其隨意拖動(dòng),點(diǎn)擊菜單欄的line按鈕,切換到連線狀態(tài),點(diǎn)擊源端口和目標(biāo)端口,生成一條從源端口到目標(biāo)端口的連線。模型搭建完成后,點(diǎn)擊subit按鈕,系統(tǒng)將數(shù)據(jù)提交給服務(wù)器端。運(yùn)算完成后,在客戶端顯示。

4.1.2 客戶端實(shí)例仿真并驗(yàn)證正確性

設(shè)彈簧彈性系數(shù)為阻尼系數(shù)小車質(zhì)量系統(tǒng)無(wú)輸入并使初始位置距平衡點(diǎn)1.0 m。模擬小車系統(tǒng)運(yùn)動(dòng)。

(1) 從左側(cè)的Simulink中選取所需block:兩個(gè)增益模塊,一個(gè)求和模塊,兩個(gè)積分模塊。

(2) 點(diǎn)擊submit按鈕,工程被提交到后臺(tái)交由Matlab運(yùn)算。編譯完成的界面如圖4所示。

(3) 點(diǎn)擊“OK”,再雙擊scope,則彈出顯示結(jié)果的窗口,如圖5所示。

4.2 后臺(tái)

Matlab的工作流程如下:

(1) 先打開Matlab,之后打開mdlserver.m。

(2) 運(yùn)行該文件,屏幕顯示“Waiting for accept a build task????”。Matlab一直在訪問(wèn)數(shù)據(jù)庫(kù),直至找到一個(gè)新提交的狀態(tài)為“1”的工程。

(3) 當(dāng)有新的工程被提交到數(shù)據(jù)庫(kù)后,Matlab開始仿真工程,當(dāng)Simulink仿真結(jié)束后,把結(jié)果提交到數(shù)據(jù)庫(kù)。

4.3 數(shù)據(jù)庫(kù)

完成實(shí)例后,查看數(shù)據(jù)庫(kù)中的Simulinkmodel表和Simulinkconnection表。發(fā)現(xiàn)兩個(gè)實(shí)例的Block和line的數(shù)據(jù),如圖6,圖7所示。

5 結(jié) 論

本文研究虛擬實(shí)驗(yàn)平臺(tái)的搭建,實(shí)現(xiàn)了基于網(wǎng)絡(luò)的虛擬仿真平臺(tái)的搭建。首先利用FLASH技術(shù)搭建基于網(wǎng)絡(luò)的虛擬仿真平臺(tái)圖形交互界面,為用戶提供類似于Simulink的建模環(huán)境,用戶通過(guò)鼠標(biāo)拖放與點(diǎn)擊操作就可以輕松地在瀏覽器上搭建控制系統(tǒng)框圖,利用Servlet訪問(wèn)數(shù)據(jù)庫(kù)的原理,實(shí)現(xiàn)了FLASH對(duì)數(shù)據(jù)庫(kù)的間接訪問(wèn),將用戶模型信息存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中,以等待Matlab執(zhí)行仿真。其次,在對(duì)Simulink模型生成命令詳細(xì)分析的基礎(chǔ)上,利用Java編寫服務(wù)器程序?qū)崿F(xiàn)用戶仿真程序的生成,通過(guò)Matlab運(yùn)行M文件實(shí)現(xiàn)模型文件的仿真。最后,設(shè)計(jì)簡(jiǎn)單的實(shí)例驗(yàn)證了仿真平臺(tái)的有效性。

參考文獻(xiàn)

[1] 鄭笑建,楊馬英,劉萍先.控制系統(tǒng)網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室[J].計(jì)算機(jī)工程與應(yīng)用,2004(10):146?149.

[2] 許又泉,譚敏生,鄧軼華.網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室及其實(shí)現(xiàn)方法研究[J].邵陽(yáng)學(xué)院學(xué)報(bào)(自然科學(xué)版),2004,1(3):83?85.

[3] 喻紅,何嶺松,王峻峰.WWW模式的工程測(cè)試遠(yuǎn)程教學(xué)實(shí)驗(yàn)基地建設(shè)[J].實(shí)驗(yàn)技術(shù)與管理,1999,16(1):1?3.

[4] 魏紅.動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)JSP與ASP、PHP的比較淺析[J].電腦知識(shí)與技術(shù),2006(2):88?90.

[5] 李亞祿,郝應(yīng)光,唐禎安.基于Internet的遠(yuǎn)程虛擬實(shí)驗(yàn)室系統(tǒng)的開發(fā)[J].微型電腦應(yīng)用,2001,17(8):36?38.

[6] 許南山,高峰.基于J2EE架構(gòu)的企業(yè)在線交易系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004(1):145?148.

[7] ILLTYEFALVI?VITEZ Z, NEMETH P, PINKOLA J, et al. Virtual laboratory support for microelectronics packaging education [C]// Proceedings of 1999 49th Electronic Components and Technology Conference. Budapest: IEEE, 1999: 1068?1073.

[8] 周久艷,賀鵬.基于WWW遠(yuǎn)程輔導(dǎo)教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].航空計(jì)算技術(shù),2002,32(3):93?96.

[9] 閔芳,張志先,楊功廷.基于OpenGL的三維建筑可視化研究與仿真[J].現(xiàn)代電子技術(shù),2016,39(2):78?81.

猜你喜歡
虛擬實(shí)驗(yàn)室
網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室的設(shè)計(jì)
構(gòu)建中醫(yī)院?;A(chǔ)醫(yī)學(xué)實(shí)驗(yàn)教學(xué)虛擬實(shí)驗(yàn)室
虛擬實(shí)驗(yàn)室在食品專業(yè)儀器分析實(shí)驗(yàn)教學(xué)中的應(yīng)用
虛擬實(shí)驗(yàn)室在生物實(shí)驗(yàn)教學(xué)中的應(yīng)用
電子技術(shù)仿真設(shè)計(jì)系統(tǒng)探究
基于VR的農(nóng)業(yè)虛擬實(shí)驗(yàn)室設(shè)計(jì)和研究
合理使用虛擬教學(xué)手段,促進(jìn)高等教育的教學(xué)質(zhì)量
基于Proteus的嵌入式以太網(wǎng)Web服務(wù)虛擬實(shí)驗(yàn)的設(shè)計(jì)與實(shí)現(xiàn)
單片機(jī)原理與應(yīng)用教學(xué)探討
五台县| 谢通门县| 吉安市| 利津县| 宁国市| 庆安县| 于田县| 河池市| 棋牌| 泸定县| 永春县| 犍为县| 石狮市| 岳阳市| 同德县| 台州市| 崇义县| 长乐市| 治县。| 定州市| 卓资县| 宁蒗| 渭源县| 抚宁县| 门头沟区| 信丰县| 米林县| 综艺| 泊头市| 昆山市| 南投县| 合江县| 宣城市| 澜沧| 四会市| 友谊县| 兴安县| 库车县| 莎车县| 穆棱市| 内黄县|