999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2017-02-16 11:01:32領(lǐng)兄
現(xiàn)代電子技術(shù) 2017年1期

領(lǐng)兄

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

近年來高校規(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ò)用戶通過瀏覽器就能夠打開該交互界面進(jìn)行Simulink建模和仿真,網(wǎng)絡(luò)平臺(tái)以網(wǎng)頁的形式提供FLASH技術(shù)搭建的交互式圖形界面;當(dāng)用戶在圖形界面中完成建模后,將模型數(shù)據(jù)通過訪問Servlet的方式傳送到數(shù)據(jù)庫中,然后Matlab通過Java接口讀取數(shù)據(jù)庫中的數(shù)據(jù)信息并進(jìn)行仿真,最后將仿真結(jié)果返回到數(shù)據(jù)庫中并由客戶端Web瀏覽器讀取數(shù)據(jù)庫中的結(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]。基于B/S模式的網(wǎng)絡(luò)虛擬仿真平臺(tái)如圖1所示。Web服務(wù)器的主要作用是提供Web接入服務(wù)、開放式交互實(shí)驗(yàn)環(huán)境以及動(dòng)態(tài)網(wǎng)頁的生成;數(shù)據(jù)分析服務(wù)負(fù)責(zé)數(shù)據(jù)的分析與處理,并將數(shù)據(jù)處理的結(jié)果返回?cái)?shù)據(jù)庫服務(wù)器進(jìn)行保存,也可以將處理結(jié)果通過Web返回到客戶端;數(shù)據(jù)庫的主要作用是配合動(dòng)態(tài)網(wǎng)頁的生產(chǎn)以及實(shí)驗(yàn)數(shù)據(jù)的存儲(chǔ)和管理。

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

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

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

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

2.1.1 模塊原件庫的搭建

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è)模塊庫。

AS3.0中有許多組件,組件有很多優(yōu)點(diǎn)。優(yōu)點(diǎn)一是使應(yīng)用程序的設(shè)計(jì)過程和編碼過程分開,這無疑大大地增加了效率。利用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文件里,通過讀取XML文件中的模塊的幾何參數(shù),就可以在繪圖區(qū)對(duì)模塊進(jìn)行繪制。被拖入工作繪圖區(qū)的模塊需要被記錄下來,它被記錄在block.as腳本文件中。

2.1.3 連線的搭建

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

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

“連線”按鈕是用來切換當(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)端口都確定下來時(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ù)庫中。

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

3.1.2 Servlet訪問MySQL

選擇的數(shù)據(jù)庫是MySQL,所以,要先安裝MySQL和MySQL?front。MySQL?front用來建立數(shù)據(jù)庫[8]。建立一個(gè)叫webSimulink的數(shù)據(jù)庫,建立四張表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表用來存儲(chǔ)被拖入主工作區(qū)的Block,每一個(gè)Block都有對(duì)應(yīng)的表,表中存儲(chǔ)的信息是名稱、路徑、坐標(biāo)值、輸入輸出端口數(shù)目、參數(shù)個(gè)數(shù)、參數(shù)值、所屬的工程名等,表的具體結(jié)構(gòu)見表2。

(3) Simulinkconnection表

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

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

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

服務(wù)器端傳輸并存儲(chǔ)在數(shù)據(jù)庫的數(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)行仿真。

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

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

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

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

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

4.1 前臺(tái)

4.1.1 FLASH圖形界面效果圖

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

在左上方的樹狀原件庫中選取需要的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)無輸入并使初始位置距平衡點(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一直在訪問數(shù)據(jù)庫,直至找到一個(gè)新提交的狀態(tài)為“1”的工程。

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

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

完成實(shí)例后,查看數(shù)據(jù)庫中的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)境,用戶通過鼠標(biāo)拖放與點(diǎn)擊操作就可以輕松地在瀏覽器上搭建控制系統(tǒng)框圖,利用Servlet訪問數(shù)據(jù)庫的原理,實(shí)現(xiàn)了FLASH對(duì)數(shù)據(jù)庫的間接訪問,將用戶模型信息存儲(chǔ)在MySQL數(shù)據(jù)庫中,以等待Matlab執(zhí)行仿真。其次,在對(duì)Simulink模型生成命令詳細(xì)分析的基礎(chǔ)上,利用Java編寫服務(wù)器程序?qū)崿F(xiàn)用戶仿真程序的生成,通過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].邵陽學(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)頁技術(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.

主站蜘蛛池模板: 国产精品任我爽爆在线播放6080| 婷婷开心中文字幕| 69av免费视频| 国产自在自线午夜精品视频| 久久这里只有精品国产99| 亚洲天堂视频在线观看| 国产人碰人摸人爱免费视频| 日韩第九页| 国产成+人+综合+亚洲欧美| 久久久久无码精品| 国产资源免费观看| 国产激情无码一区二区免费| 成年A级毛片| 亚洲有码在线播放| 国产极品粉嫩小泬免费看| 中文字幕在线看| 91色老久久精品偷偷蜜臀| 国产精品女同一区三区五区| 欧美国产日本高清不卡| 国产美女免费| 毛片大全免费观看| 欧美成人国产| 亚洲色图在线观看| A级毛片无码久久精品免费| 亚洲天天更新| 国产精品尹人在线观看| 人人91人人澡人人妻人人爽 | 精品1区2区3区| 18黑白丝水手服自慰喷水网站| 激情无码字幕综合| 国产剧情一区二区| 久久久久夜色精品波多野结衣| 免费无码AV片在线观看国产| 一区二区三区在线不卡免费 | 国产综合另类小说色区色噜噜| 天堂在线视频精品| 99精品国产电影| 国产美女无遮挡免费视频| 国产无遮挡裸体免费视频| 中国精品久久| 国产一区亚洲一区| 久久久久久尹人网香蕉 | 国产交换配偶在线视频| 精品国产www| 免费可以看的无遮挡av无码| 中文字幕无线码一区| 欧美成人第一页| 久草视频精品| 无码中文AⅤ在线观看| 国产色婷婷视频在线观看| 欧美国产中文| 国产丝袜91| 亚洲综合久久成人AV| 91九色国产porny| 国产尤物在线播放| 青草国产在线视频| 国产成人一区二区| 欧美日本在线| 国产91色在线| 国产精品白浆在线播放| 真人高潮娇喘嗯啊在线观看| 国产精品视频第一专区| 亚洲伊人天堂| 97成人在线视频| 欧美精品成人| 久久大香伊蕉在人线观看热2| 欧美精品aⅴ在线视频| 97国产在线播放| 成年人国产视频| 日韩不卡高清视频| 精品国产免费观看| 国产系列在线| 欧美成人一级| 久草视频中文| 久久国产精品影院| 2020国产精品视频| 最近最新中文字幕在线第一页 | 欧美色丁香| 婷婷成人综合| 午夜视频免费试看| 99在线视频免费| 色婷婷亚洲十月十月色天|