国产欧美日韩精品a在线观看-国产欧美日韩精品一区二区三区-国产欧美日韩精品综合-国产欧美中文字幕-一区二区三区精品国产-一区二区三区精品国产欧美

ACS880-07C
關注中國自動化產業發展的先行者!
CAIAC 2025
2024
工業智能邊緣計算2024年會
2023年工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

VB與MATLAB混合編程實現控制系統分析
  • 企業:控制網     領域:儀器儀表     行業:綜合    
  • 點擊數:2685     發布時間:2009-11-27 12:01:43
  • 分享到:
    摘  要: 分析控制系統的性能可以采用Visual Basic與MATLAB的混合編程實現,用Visual Basic編寫圖形化界面進行參數輸入和初步處理并應用ActiveX自動化技術發送給MATLAB服務器,由MATLAB在后臺完成對控制系統的分析與計算任務并將計算結果傳回Visual Basic圖形化界面顯示。

    關鍵詞:
  ActiveX自動化;MATLAB服務器;控制系統;Visual Basic
    Abstract:Control system analysis can be realized by merging Visual Basic and MATLAB.Visual Basic is supposed to provide the interface of control system parameters which is roughly dealt and and passed to MATLAB Server using ActiveX automation technology. MATLAB then does the relevant calculation and analysis in the background and returns the results to Visual Basic interface.

    Keywords
ActiveX Automation;MATLAB Server; Control System;Visual Basic

    引言

    正確的分析控制系統的性能無論是在研究領域還是在工業生產過程中都有重要的意義,而一個好的分析工具自然可以簡化分析過程,提高效率,節約時間。MATLAB是現在比較常用的控制系統分析工具,其功能雖然強大,但是命令復雜難記,對數據的輸入格式有嚴格要求,不適合初學者,尤其是英語和編程語言基礎薄弱的用戶。解決此問題的辦法之一是設計圖形化界面的分析軟件包供用戶輸入參數和顯示對應結果。Visual Basic是由微軟公司開發的,以 “所見即所得”效果著稱的圖形化編程語言,無需編輯大量代碼就可以輕松實現比較復雜的圖形界面。因此如果將上述兩種軟件結合,用Visual Basic開發前臺界面,MATLAB進行后臺數據處理,通過簡單編程就可以初步實現控制系統的計算機輔助分析,降低了分析復雜控制系統的編程難度,縮短了編程周期,提高工作效率。

     1 Visual Basic與MATLAB混合編程

    1.1 Visual Basic與MATLAB的結合

    Visual Basic是MicroSoft公司推出的應用程序開發工具,雖然它簡單易學而又功能強大,尤其在開發圖形用戶界面(GUI)方面表現卓越,但是提供的數學函數卻及其有限,在數值計算和圖形處理方面顯得力不從心。MATLAB是MathWorks公司開發的一種科學計算語言。用這種語言可以解決很多工程計算問題,主要功能包括數學計算、數據分析與可視化等。將二者結合,在Visual Basic可視化界面下憑借MATLAB強大的數據計算和圖形顯示功能,勢必可以簡化編程步驟,輕松實現控制系統的計算機輔助分析。

    1.2 ActiveX自動化技術

    Microsoft把所有以COM(小型快速可重用組件Component Object Model)為基礎的技術統稱為ActiveX技術。ActiveX自動化(Automation)是ActiveX的一個協議,它允許應用程序活組件控制另一個應用程序或組件運行。由于Visual Basic支持ActiveX自動化控制協議,MATLAB支持自動化服務器端協議,因此如果建立一個Visual Basic應用程序和MATLAB之間的ActiveX自動化連接,那么在Visual Basic應用程序中就可以調用MATLAB的命令了。

    1.3 Visual Basic創建ActiveX對象

     Visual Basic能通過不同的方式實現對自動化對象的使用和操作。要創建一個ActiveX對象,只要將CreateObject函數方法返回的對象賦給一個對象變量,并在聲明對象變量時使用As Object子句。

        Dim MATLAB As Object

        Set MATLAB =CreateObject(“MATLAB.application”)

    MATLAB.application是MATLAB提供的一個自動化對象的外部名稱,是機器安裝好MATLAB 7.01后默認的類庫名稱。創建好一個ActiveX對象后,就可對此對象進行操作,如同在Visual Basic中對其它對象的操作一樣。

    1.4 ActiveX對象的操作

      MATLAB.application對象提供的常用方法有一下幾種:

       Execute 

       [out] BSTR result = Execute([in] BSTR "command")

    本方法將調用MATLAB執行字符串變量Command中的MATLAB命令,同時返回一個字符串表示命令的執行情況。任何能在MATLAB命令行窗口執行的命令均可被包括在Command字符串中。同時命令所產生的任何圖形窗口都將被直接顯示在屏幕上。

      GetFullMatrix

      ([in] BSTR varname,[in] BSTR workspace,

      [in,out] SAFEARRAY(double)* xreal,

      [in, out] SAFEARRAY(double)* ximag)

   GetFullMatrix 方法將MATLAB中的一個矩陣變量傳送到Visual Basic指定的數組中。varname為MATLAB中的矩陣變量名,workspace指定了該矩陣所在的MATLAB工作區,xreal是Visual Basic程序中的實部數組,ximag是指Visual Basic程序中的虛部數組。

PutFullMatrix     
    
([in] BSTR name,    
    
[in] BSTR workspace,

[in] SAFEARRAY(double) xreal,

[in] SAFEARRAY(double) ximag);

PutFullMatrix方法用來將Visual Basic程序中的一個一維或二位數組傳送到MATLAB的矩陣變量中。

PutCharArray          

([in] BSTR name,

[in] BSTR workspace,
[in] BSTR string)
     PutCharArray  方法將Visual Basic程序中一個字符串變量string的值傳到MATLAB命令空間的變量name中。

     1.5 Visual Basic與MATLAB數據傳遞關系如下:

                    
 
     2  數據處理與傳遞

      圖1 是根據控制系統的參數繪制BODE圖的界面:

                     
                                           
                                         圖 1

    用戶根據提示信息在在文本框中輸入對應參數并按確定按鈕之后,Visual Basic先對文本框中的數據進行合法性的檢查和處理,再將其傳到MATLAB的工作空間中進行繪制BODE圖有關的處理計算,再向MATLAB發出繪圖命令繪制系統的BODE圖,最后將MATLAB的數據計算結果(圖中為增益裕度、相位裕度等)顯示在文本框中,將圖像顯示在圖形框中。

     2.1 矩陣數據的傳遞與處理

    用戶在軟件包的界面輸入的矩陣數據在傳遞到MATLAB的命令空間之前首先要經過Visual Basic環境下編寫的矩陣處理函數進行初步的處理,包括非法字符的過濾與有效性檢查等,如果數據不符合要求的數據輸入格式,則給用戶發出警告。在檢查無誤后,Visual Basic通過ActiveX對象的putfullmatrix命令將矩陣數據傳遞到MATLAB的命令空間,同時對MATLAB發出數據分析與繪圖命令,MATLAB響應該請求并進行運算,最后把計算結果的實部和虛部通過GetFullMatrix函數傳至Visual Basic中。
     2.2圖像數據的傳遞與處理

     MATLAB繪制完圖形以后并沒有直接傳遞給Visual Basic,而是將圖像保存在本地磁盤的某一路徑下面,保存完以后通知Visual Basic圖形的保存路徑。Visual Basic根據該路徑調用LoadPicture(picpathname)函數將圖形導入圖形框,picpathname是該圖形存儲的路徑的字符串。

    3 結束語

    研究控制系統的計算機輔助分析有重要意義,將Visual Basic和MATLAB結合開發分析工具可以綜合Visual Basic和MATLAB的優勢,可簡化編程步驟,提高控制程序的開發效率。
 
    參考文獻
    [1] 龔沛曾、陸慰民、楊志強.Visual Basic 程序設計教程(6.0)[M],北京:高等教育出版社,2000年7月,P231~P250(書籍類)。

    [2] 李國勇、謝克明.控制系統數字仿真與CAD[M],北京:電子工業出版社,2005年7月,P6~P87(書籍類)。

    [3] (美) 克里斯 H. 帕帕斯、 威廉 H. 默里.Visual Basic進階Windows API編程,   西安-西安交通大學出版社,2001年04月,P100-P150(書籍類)。


         

熱點新聞

推薦產品

x
  • 在線反饋
1.我有以下需求:



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 国产成人免费全部网站| 网禁呦萝资源网站在线观看| 在线精品视频播放| 日本精品视频在线播放| 国产精品一二区| 日韩欧美印度一级毛片| 精品国产96亚洲一区二区三区| a毛片网站| 日本黄网站高清色大全| 成人伊人| 欧美japanese孕交| 成人小视频在线观看| 三级视频网站| 白嫩美女直冒白浆| 欧美成人吃奶高清视频| 国产成年人网站| 日本一级毛片片在线播放| 99爱视频| 久久久精品免费视频| 2021国产精品系列一区二区| 男女免费爽爽爽在线视频| 亚洲精品天堂一区在线观看| 国产一区亚洲二区三区毛片| 欧美另类色| 国产成人99久久亚洲综合精品| 手机在线观看亚洲国产精品| 操哭美女| 精品久久成人免费第三区| 亚洲一级毛片视频| 高清一级片| 九九夜色| 色三级大全高清视频在线观看| 中文字幕一区二区三区亚洲精品| 久久国产精品1区2区3区网页| 中文字幕一区二区视频| 精品一区二区三区亚洲| 欧美视频一区在线观看| 91小视频在线观看免费版高清| 美女和男人免费网站视频| 欧美一级久久久久久久久大| 92看片淫黄大片一级|