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

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

案例頻道

VB與MATLAB混合編程實現控制系統分析
  • 企業:控制網     領域:儀器儀表     行業:綜合    
  • 點擊數:2855     發布時間: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.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 欧美一级高清片欧美国产欧美 | 欧美久久久久欧美一区 | 大美女香蕉丽人视频网站 | www色在线 | 日本毛片在线观看 | 天堂素人搭讪系列嫩模在线观看 | 欧美精品首页 | 怡红院在线观看在线视频 | 99久久精品国产一区二区小说 | 欧美一级片在线观看 | 国产成人亚洲合集青青草原精品 | 成人男女18免费o | 精品国产90后在线观看 | 亚洲欧美精品一区天堂久久 | 久草在线中文 | 长腿嫩模打开双腿呻吟 | 亚洲国产精品自在现线让你爽 | 91久久亚洲国产成人精品性色 | 久久精品中文字幕首页 | swag国产精品一区二区 | 精品毛片免费看 | 日韩高清在线不卡 | 国产原创在线视频 | 岬奈一区二区中文字幕 | 拍真实国产伦偷精品 | 欧美三级一区二区 | 欧美黑大粗硬毛片视频 | 免费看欧美一级特黄a毛片 免费看片aⅴ免费大片 | 欧美一级三级在线观看 | 精品丝袜国产自在线拍亚洲 | 毛片com| 草草国产成人免费视频 | 特级淫片国产免费高清视频 | 国产美女作爱 | 国产精品午夜性视频 | 欧美视频一级 | 鲁丝片一区二区三区免费 | 德国女人一级毛片免费 | 97一级毛片全部免费播放 | 男女在线观看视频 | 日本午夜人成免费视频 |