• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      COM對(duì)象下Com Builder的虛擬演示平臺(tái)

      2019-04-04 01:46:10鮑聰孫祥娥王文松郭益鳳李文婷
      現(xiàn)代電子技術(shù) 2019年2期
      關(guān)鍵詞:窗體級(jí)數(shù)傅里葉

      鮑聰 孫祥娥 王文松 郭益鳳 李文婷

      關(guān)鍵詞: COM; Matlab; Com Builder; 虛擬演示; 直觀顯示; 窗體屬性; 維數(shù)轉(zhuǎn)變

      中圖分類號(hào): TN915.5?34; TP391.9 ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2019)02?0089?05

      Virtual demonstration platform of Com Builder under COM object

      BAO Cong, SUN Xiange, WANG Wensong, GUO Yifeng, LI Wenting

      (Oil and Gas Signal and Information Processing Research Center, School of Electronic Information, Yangtze University, Jingzhou 434023, China)

      Abstract: The traditional demonstrational Matlab graphic windows using CORBA and JNI technologies has many disadvantages, while the virtual demonstration of Com Builder under the COM object can make the Matlab graphic window display independently and visually, and retain the original window attributes, such as acquirement of horizontal and vertical coordinates of a point, graph scaling, and dimension change, and setting of line and window attribute. Its key technology is to apply the Com Builder under the COM object to convert the M file in the Matlab into the Java class, and utilize the WebFigure tags in JSP to realize the virtual demonstration function. Combining with the instance demonstration, the superiority of the virtual demonstration over the traditional demonstration and the feasibility of the technology were verified. The results show that the virtual demonstration can make students deepen the graphic effect analysis of relevant knowledge points and the understanding of relevant concepts and theories in the class.

      Keywords: COM; Matlab; Com Builder; virtual demonstration; visual display; window attribute; dimension variation

      Com Builder也可叫作Matlab Builder for Java[1?2],其能使程序設(shè)計(jì)的流程更加靈活,替代了傳統(tǒng)的通過古老CGI [3]方式工作的Matlab Web Server組件[4]。之前所研究的演示主要實(shí)現(xiàn)了圖形的網(wǎng)頁端的顯示,大多采用CORBA,JNI技術(shù)實(shí)現(xiàn)圖形嵌套于網(wǎng)頁端顯示,而應(yīng)用COM對(duì)象下Com Builder技術(shù)設(shè)計(jì)的虛擬演示平臺(tái),實(shí)現(xiàn)了圖形窗體非嵌套于網(wǎng)頁而從網(wǎng)頁端彈出、能直接獲取某點(diǎn)的對(duì)應(yīng)值、修改背景色彩、圖形的放大和縮小以及旋轉(zhuǎn),二維圖形轉(zhuǎn)變?yōu)槿S立體圖,以及保留了原有的窗體屬性及一系列的可編輯等功能。以驗(yàn)證周期信號(hào)的簡(jiǎn)潔型傅里葉級(jí)數(shù)為例,證明Com Builder技術(shù)的可實(shí)現(xiàn)性以及與前人相比所增加的一系列功能,用于開發(fā)與Matlab提供支持的相關(guān)課程的虛擬演示平臺(tái)[5]。

      1 ?Com Builder方法論證

      針對(duì)Java程序訪問Matlab,Com Builder方法比傳統(tǒng)CORBA,JNI具有許多優(yōu)點(diǎn),具體論證如下:

      1) 傳統(tǒng)技術(shù)。CORBA指的是公共對(duì)象代理結(jié)構(gòu),CORBA通過橋梁C++ ,即可完成Java對(duì)Matlab的方法調(diào)用[6]。JNI是指本地編程接口,Java通過調(diào)用Matlab Engine(Matlab引擎函數(shù))來實(shí)現(xiàn)對(duì)Matlab的訪問[7?8]。

      2) Com Builder技術(shù)訪問。利用Matlab中的Com Builder完成從Matlab算法到COM[9]的轉(zhuǎn)換,生成COM對(duì)象,從而使基于COM+的Java應(yīng)用程序能夠使用COM對(duì)象。其訪問流程是在Matlab的編輯器中編寫好要使用的M文件,將Matlab環(huán)境下的M文件轉(zhuǎn)換生成Java環(huán)境中的jar[10]文件,Java應(yīng)用COM對(duì)象使Java調(diào)用Matlab,從而這些被轉(zhuǎn)換的jar文件可以被集成到Java 程序開發(fā)中,實(shí)現(xiàn)了混合編程[11]。然而這些被集成的程序可以部署到裝有免費(fèi)Matlab Compiler Runtime (MCR)的Web服務(wù)器中,故無需安裝Matlab。

      由于本方法是基于Java Web,在Web應(yīng)用中使用WebFigure能夠在網(wǎng)頁中調(diào)用Matlab環(huán)境下的圖形,所以客戶端只需使用標(biāo)準(zhǔn)的Internet 瀏覽器就可以展現(xiàn)和操作實(shí)驗(yàn)的全過程,具體訪問過程見圖1。

      因此與傳統(tǒng)的方法相比,利用Com Builder技術(shù)訪問,更易實(shí)現(xiàn)Java調(diào)用Matlab,在提高運(yùn)算速度的同時(shí)可操作性也明顯增強(qiáng)。

      2 ?虛擬平臺(tái)環(huán)境及實(shí)現(xiàn)過程

      2.1 ?平臺(tái)的運(yùn)行環(huán)境及流程

      在整個(gè)流程中,采用Win64位的Windows 10操作系統(tǒng)、Java(jdk1.7.0_67)、Eclipse、Matlab 2016b,檢查Java運(yùn)行環(huán)境和Matlab環(huán)境,使Matlab能正確讀取環(huán)境變量Java_HOME的值,保證環(huán)境變量設(shè)置成功,使Java運(yùn)行環(huán)境和Matlab環(huán)境相兼容,從而完成Matlab Builderfor Java的環(huán)境配置,為虛擬平臺(tái)有條不紊的進(jìn)行打下基礎(chǔ),具體運(yùn)行流程見圖2。

      2.2 ?編寫相關(guān)M文件

      開發(fā)者需要編寫與演示相關(guān)的Matlab的M文件,編寫可以展示相關(guān)的原理、概念,以及理論的Matlab程序,M文件主要用于處理輸入頁面中用戶請(qǐng)求的各種變量、函數(shù)及數(shù)據(jù)等。其中M文件中涉及的數(shù)據(jù)主要有兩部分:一部分是從輸入頁面提取出來的數(shù)據(jù);另一部分是經(jīng)過運(yùn)算后反饋給用戶的數(shù)據(jù)[1] ,以新建M文件Waving.m為例。

      2.3 ?將M文件打包生成jar文件

      在Matlab的命令窗口輸入“deploytool”命令,啟動(dòng)Deployment Project對(duì)話框,輸入編譯工程名MathplotWaving.prj,并在Type列表框中選擇編譯類型為Java Package,在頁面中,添加類和編寫好的M文件,命名文件名為Waving,如圖3所示,通過Package完成編譯后,即可在編譯項(xiàng)目所在的目錄打包兩個(gè)文件夾: for_testing文件夾的作用是存放編譯好的Waving.jar文件;for_redistribution _files_only文件夾內(nèi)放置的是Java 包中類的代碼文件。

      2.4 ?Java編程實(shí)現(xiàn)Matlab程序在網(wǎng)頁端的運(yùn)行

      客戶端采用JSP作為視圖來顯示用戶請(qǐng)求的響應(yīng)結(jié)果,Matlab 生成的圖形通過Servlet訪問獲得,而JSP和Servlet兩者之間的通信連接是采用Servlet中的session實(shí)現(xiàn)。實(shí)現(xiàn)該模塊功能的具體步驟如下。

      2.4.1 ?在Java中導(dǎo)入Matlab生成的jar文件

      在Java開發(fā)工具Eclipse 中新建一個(gè)Dynamic Web Project工程,輸入工程名Java web,再新建一個(gè)JSP文件。在Java web里通過Build path中的Configure Build Path的路徑為工程添加jar文件。在Java Build path的libraries下通過Add External JARS添加Matlab生成的Waving.jar文件和Matlab安裝文件下的Javabuilder.jar文件,如圖4所示。其中Javabuilder.jar是Matlab builder組件所必須的,導(dǎo)入了Javabuilder.jar則可保證在當(dāng)前Java 項(xiàng)目?jī)?nèi)可以訪問到Java 包中的類。同時(shí)將這兩個(gè)jar文件復(fù)制到Java web\WEB?INF\lib目錄中,以及將顯示Matlab圖形所必須的文件webfigures.tld標(biāo)簽庫拷貝Java web到WEB?INF文件夾下。

      2.4.2 ?為JSP文件中的頭部添加相應(yīng)引用項(xiàng)

      1) 在JSP文件的頭部聲明引用webfigures.tld文件,定義標(biāo)簽頁

      <%@ taglib prefix="wf"uri="/WEB?INF/webfigures.tld"%>

      2) 引用com.mathworks.toolbox.javabuilder.*,其中包含WebFigure庫、Erros定義以及編譯生成的Java的類和Combuilder接口的定義。具體為:

      <%@page import="com.mathworks.toolbox.javabuilder.webfigures.WebFigure"%> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //引用WebFigure庫

      <%@page import="com.mathworks.toolbox.javabuilder.*"%>

      //引用Combuilder接口定義

      <%@page import="com.mathworks.toolbox.javabuilder.internal.*"%> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//內(nèi)部Erros定義

      <%@page import="Waving.Mathwaving"%>

      //引用編譯生成的Java類

      2.4.3 ?JSP實(shí)例的關(guān)鍵代碼

      WebFigure webFigure=(WebFigure) ? ? ? ? ? ? ? ? ?//引用標(biāo)簽

      {(MWJavaObjectRef)func. Plotwaving (1)[0]).get();

      //轉(zhuǎn)化對(duì)象進(jìn)行參數(shù)傳遞

      request.getSession().setAttribute("MyFigure",webFigure);

      //請(qǐng)求訪問Seession

      }

      Plotwaving是Matlab中M文件定義的函數(shù),而在Servlet中,由于實(shí)參不能直接和在M文件中生成Java 類的函數(shù)的形參進(jìn)行傳遞,則需要通過MWNumericArray對(duì)象作為實(shí)參傳遞。將返回的對(duì)象類型強(qiáng)制轉(zhuǎn)化成MWJavaObjectRef類型的對(duì)象,通過訪問Session、共享Session屬性來實(shí)現(xiàn)Servlet和Jsp之間通信。

      2.4.4 ?配置文件以實(shí)現(xiàn)網(wǎng)頁端的顯示

      配置web.xml文件需要對(duì)Javabuilder.jar中所使用到的WebFigures Servlet進(jìn)行配置。在web?app標(biāo)簽中加入如下代碼:

      WebFigures

      //配置WebFigures Servlet

      com.mathworks.toolbox.javabuilder.webfigures.WebFiguresServlet ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //引用jar文件

      WebFigures

      /WebFigures/* ? ? ?//聲明匹配規(guī)則

      3 ?應(yīng)用實(shí)例演示

      3.1 ?驗(yàn)證周期信號(hào)的傅里葉級(jí)數(shù)展開式

      求圖5周期信號(hào)f(t)的簡(jiǎn)潔三角型傅里葉級(jí)數(shù)[12]。周期為[T0]的周期信號(hào)f(t),滿足狄里利赫利(Dirichlet)條件,可將其展開為簡(jiǎn)潔三角型傅里葉級(jí)數(shù),即:

      [ft=A0+n=1∞Ancosnω0t+φn] (1)

      式中:[ω0]為基波頻率;[An=a2n+b2n,an與bn]為傅里葉系數(shù)。在[T0]內(nèi)周期內(nèi):

      [a0=1T0-T02T02ftdt]

      [an=2T0-T02T02ftcosnω0tdt, n=1,2,…] (2)

      [bn=2T0-T02T02ftsinnω0tdt, n=1,2,…] (3)

      圖5中周期[T0]=[π],基波頻率[ω0=2πT0]=2 rad/s,則:

      [A0=a0=1π0πe-t2dt]=0.504,[an=]0.504[8n1+16n2],

      [bn=0.5048n1+16n2An]=[0.504?21+16n2,]

      [φn]=[-arctan4n],則簡(jiǎn)潔傅里葉級(jí)數(shù)為:

      [ft= ? ? ? ? ?0.5041+n=1∞21+16n2cos2nt-arctan-4n]

      An(幅度)和[φn](度)的具體數(shù)值見表1。

      下面進(jìn)行Matlab程序驗(yàn)證其傅里葉級(jí)數(shù)(取前10項(xiàng)系數(shù))。

      3.2 ?實(shí)驗(yàn)源程序

      %計(jì)算傅里葉系數(shù)并畫頻譜圖

      syms t n

      a0=1/pi*int(sum(′exp(?t/2)′),0,pi);

      a_0=subs(a0);

      an=2/pi*int(seem(′exp(?t/2)*cos(2*n*t)′),0,pi);

      bn=2/pi*int(sum(′exp(?t/2)*sin(2*n*t)′),0,pi);

      n=1:10;

      a_n=subs(an);b_n=subs(bn);

      A_n=sqrt(a_n.^2+b_n.^2);

      p_n=atan2(?b_n,a_n)*180/pi;

      n=[0,n];A_n=[a_0,A_n];p_n=[0,p_n];

      subplot(2,1,1);stem(n,A_n,′fill′);ylabel(′An′);

      xlabel(′n′)

      subplot(2,1,2);stem(n,p_n,′fill′);ylabel(′\phi_n(度)′);

      xlabel(′n′)

      disp(′n An(幅度) ?相位(度)′);

      disp([num2str([n′,A_n′,p_n′])])

      3.3 ?周期信號(hào)的實(shí)驗(yàn)結(jié)果分析與對(duì)比

      部署項(xiàng)目到tomcat,啟動(dòng)tomcat,在瀏覽器網(wǎng)址欄中輸入http://localhost:8080/couse.jsp。運(yùn)行后,即可將An(幅度)、[φn](度)結(jié)果在虛擬實(shí)驗(yàn)中心顯現(xiàn)。點(diǎn)擊實(shí)驗(yàn)結(jié)果按鈕,跳轉(zhuǎn)到新的頁面,即為想要的虛擬演示結(jié)果。

      實(shí)驗(yàn)結(jié)果如圖6所示,具體實(shí)驗(yàn)分析如下:

      圖6a)為CORBA,JNI技術(shù)下傳統(tǒng)演示的Matlab圖形窗體是嵌套于網(wǎng)頁中,僅有圖形并無其他功能。

      圖6b)是COM對(duì)象下Com Builder的Matlab實(shí)驗(yàn)圖形。該窗體是從網(wǎng)頁中彈出,獨(dú)立于網(wǎng)頁顯示,并有Matlab圖形窗體的一系列工具欄,能直接獲取某點(diǎn)橫縱坐標(biāo)(如n=1,An=0.244 6)。調(diào)整圖中圖形、背景顏色,使學(xué)生在課堂上就能加深對(duì)抽象理論知識(shí)的理解。

      圖6c)在COM對(duì)象下實(shí)現(xiàn)了圖形的旋轉(zhuǎn)和縮放,能更進(jìn)一步加深對(duì)圖形的效果分析。

      圖6d)實(shí)現(xiàn)了圖形從二維轉(zhuǎn)變成三維立體效果圖,增強(qiáng)了其感染力和效果。

      通過實(shí)驗(yàn)驗(yàn)證了周期信號(hào)的傅里葉級(jí)數(shù)與理論數(shù)學(xué)推導(dǎo)所得的結(jié)果一致。圖6b)~圖6d)通過縮放圖形,設(shè)置線條及顏色,多維度轉(zhuǎn)換圖形。與傳統(tǒng)演示圖6a)相比展現(xiàn)了Com Builder下圖形效果的優(yōu)越性,可直接從圖上獲取橫縱坐標(biāo),與數(shù)學(xué)推導(dǎo)表1的系數(shù)相對(duì)比,實(shí)驗(yàn)結(jié)果更直觀、方便,使相關(guān)課堂演示更加生動(dòng)鮮明。

      4 ?結(jié) ?語

      利用COM對(duì)象下Com Builder技術(shù)實(shí)現(xiàn)了Matlab圖形窗體脫離網(wǎng)頁端而非嵌套的獨(dú)立呈現(xiàn),從而最大程度地保留了Matlab圖形界面控件的豐富性。不僅能夠?qū)崿F(xiàn)圖形的縮放、旋轉(zhuǎn),而且能夠獲取橫縱坐標(biāo)、調(diào)整圖形、背景顏色、維數(shù)轉(zhuǎn)換及設(shè)置線條屬性的可編輯等諸多功能,且具有操作簡(jiǎn)單、使用方便等特點(diǎn)。實(shí)現(xiàn)了可視化環(huán)境,降低了演示對(duì)用戶端系統(tǒng)環(huán)境的要求,使教師、學(xué)生只要通過網(wǎng)頁就能訪問,可以避免安裝Matlab軟件及復(fù)雜的調(diào)試和輸入程序,既方便教師課堂上的教學(xué),同時(shí)對(duì)不具備Matlab相關(guān)知識(shí)的學(xué)生也可輕松操作。

      注:本文通訊作者為孫祥娥。

      參考文獻(xiàn)

      [1] 莊思發(fā).利用Matlab Web Server實(shí)現(xiàn)在線作圖[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010,19(6):223?225.

      ZHUANG Sifa. Online plot using the Matlab Web Server [J]. Computer systems & applications, 2010, 19(6): 223?225.

      [2] 蔡云鷺.基于Java Web和Matlab Builder JA的遠(yuǎn)程數(shù)學(xué)實(shí)驗(yàn)教學(xué)系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(1):83?85.

      CAI Yunlu. Design of distance education system for mathematics based on Java Web and Matlab Builder JA [J]. Experimental technology and management, 2012, 29(1): 83?85.

      [3] 蘇耀峰.混合編程方法在網(wǎng)絡(luò)運(yùn)維效能評(píng)估中的應(yīng)用[J].軟件導(dǎo)刊,2016,15(5):145?147.

      SU Yaofeng. Application of hybrid programming method in network operation and maintenance efficiency evaluation [J]. Software guide, 2016, 15(5): 145?147.

      [4] 黃銀娟.基于Matlab Web Server的遠(yuǎn)程數(shù)值分析虛擬系統(tǒng)設(shè)計(jì)[J].廣西民族大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,15(2):99?102.

      HUANG Yinjuan. Remote numerical analysis virtual system based on Matlab Web Server [J]. Journal of Guangxi University for Nationalities (Natural science edition), 2009, 15(2): 99?102.

      [5] 廖云伢,王建新,盛羽.基于Java與Matlab集成的虛擬實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2007,27(2):394?396.

      LIAO Yunya, WANG Jianxin, SHENG Yu. Design and implementation of virtual lab platform based on integration of Java and Matlab [J]. Computer applications, 2007, 27(2): 394?396.

      [6] 王建新,莫秋菊.基于Internet的通信系統(tǒng)虛擬實(shí)驗(yàn)環(huán)境設(shè)計(jì)與實(shí)現(xiàn)[J].中南大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,37(2):330?335.

      WANG Jianxin, MO Qiuju. Design and implementation of communication system virtual environment based on Internet [J]. Journal of Central South University (Science and technology), 2006, 37(2): 330?335.

      [7] 周小娟.Java?Matlab混合編程的研究[J].電子設(shè)計(jì)工程,2013,21(2):16?18.

      ZHOU Xiaojuan. Research of Java?Matlab mixed programming methodology [J]. Electronic design engineering, 2013, 21(2): 16?18.

      [8] 王薇,楊麗萍.Java和Matlab混合編程及其應(yīng)用[J].長(zhǎng)春大學(xué)學(xué)報(bào),2012,22(10):1186?1189.

      WANG Wei, YANG Liping. Mixed programming of Java and Matlab and its application [J]. Journal of Changchun University, 2012, 22(10): 1186?1189.

      [9] 尹莉麗,初學(xué)導(dǎo).基于COM技術(shù)實(shí)現(xiàn)C++Builder與Matlab混合編程及其在模糊自整定PID控制中的應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2006(1):34?37.

      YIN Lili, CHU Xuedao. Joint programming of C++ Builder and Matlab with COM and its application in self?turning fuzzy PID control [J]. Computer and modernization, 2006(1): 34?37.

      [10] 張宏立.基于Matlab的Web實(shí)驗(yàn)平臺(tái)開發(fā)[J].計(jì)算機(jī)應(yīng)用與軟件,2005,22(2):142?144.

      ZHANG Hongli. Exploitation of web experimental platform based on Matlab [J]. Computer applications and software, 2005, 22(2): 142?144.

      [11] 曾威,楊建東,凌宇.基于Java和Matlab混合編程的水泵水輪機(jī)全特性構(gòu)造系統(tǒng)[J].大電機(jī)技術(shù),2014(4):55?58.

      ZENG Wei, YANG Jiandong, LING Yu. The generation of pump?turbine characteristics based on hybrid programming between Java with Matlab [J]. Large electric machine and hydraulic turbine, 2014(4): 55?58.

      [12] 金波.信號(hào)與系統(tǒng)[M].武漢:華中科技大學(xué)出版社,2015.

      JIN Bo. Signals and systems [M]. Wuhan: Huazhong University of Science and Technology Press, 2015.

      猜你喜歡
      窗體級(jí)數(shù)傅里葉
      試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
      檔案天地(2019年5期)2019-06-12 05:12:02
      雙線性傅里葉乘子算子的量化加權(quán)估計(jì)
      Dirichlet級(jí)數(shù)及其Dirichlet-Hadamard乘積的增長(zhǎng)性
      基于小波降噪的稀疏傅里葉變換時(shí)延估計(jì)
      幾個(gè)常數(shù)項(xiàng)級(jí)數(shù)的和
      基于傅里葉變換的快速TAMVDR算法
      p級(jí)數(shù)求和的兩種方法
      快速離散傅里葉變換算法研究與FPGA實(shí)現(xiàn)
      Dirichlet級(jí)數(shù)的Dirichlet-Hadamard乘積
      基于LayeredWindow的異形窗體局部刷新
      中文信息(2014年2期)2014-03-06 23:49:14
      永兴县| 扎兰屯市| 平定县| 静乐县| 华安县| 象州县| 开阳县| 逊克县| 镇巴县| 会东县| 大城县| 陇南市| 沁水县| 泸州市| 上栗县| 珲春市| 邯郸县| 嫩江县| 萨嘎县| 光泽县| 乐山市| 华坪县| 鄂尔多斯市| 大理市| 上虞市| 桦川县| 安吉县| 寻乌县| 容城县| 方山县| 东乡族自治县| 涡阳县| 合水县| 绍兴县| 桦南县| 普洱| 平罗县| 团风县| 彭阳县| 锡林浩特市| 浑源县|