《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > Matlab與Excel接口技術在電力系統數據分析中的應用
Matlab與Excel接口技術在電力系統數據分析中的應用
來源:微型機與應用2012年第18期
董世君1,2, 薛 瑋3, 董愛芹4, 陳 眾2
(1. 南平電業局,福建 南平350003; 2.長沙理工大學 電氣與信息工程學院,湖南 長沙410
摘要: 為了充分發揮Excel和Matlab各自的優勢,實現兩者之間的無縫連接并將其應用于電力系統數據分析中,簡要分析了DDE(Dynamic Data Exchange)和自動化技術、Excel Link插件以及通過Excel生成器等3種接口技術。而Excel生成器生成插件又有兩種方法,通過一個實例重點介紹了其中一種工作量少、簡單方便的方法。通過對保存在Excel中的數據進行處理分析,結果顯示這種以Excel為載體、Matlab程序集成到Excel插件處理數據的思想能夠很好地彌補Excel沒有專門函數處理電力系統數據等功能的缺陷。
Abstract:
Key words :

摘  要: 為了充分發揮ExcelMatlab各自的優勢,實現兩者之間的無縫連接并將其應用于電力系統數據分析中,簡要分析了DDE(Dynamic Data Exchange)和自動化技術、Excel Link插件以及通過Excel生成器等3種接口技術。而Excel生成器生成插件又有兩種方法,通過一個實例重點介紹了其中一種工作量少、簡單方便的方法。通過對保存在Excel中的數據進行處理分析,結果顯示這種以Excel為載體、Matlab程序集成到Excel插件處理數據的思想能夠很好地彌補Excel沒有專門函數處理電力系統數據等功能的缺陷。
關鍵詞: Excel; Matlab; Excel生成器; 無縫連接

    Excel 是微軟辦公套裝軟件的一個重要組成部分,它可以進行各種數據處理、統計分析和輔助決策操作,廣泛地應用于管理、統計財經、金融等眾多領域。電力系統研究中需要或者獲得的數據常常保存在Excel中,大多數情況下這些數據僅能進行簡單的處理,而無法做到深層次的分析,限制了其更進一步的應用。
    Matlab自問世以來,由于其卓越的計算分析能力已經成為電力系統研究不可或缺的工具,但是Matlab作為一種解釋型語言導致其運行速度相對較慢,同時Matlab自身無法為海量數據提供直接載體且界面不便捷。通過接口技術實現Matlab與Excel混合編程,可以充分利用各自的優勢,彌補兩者的不足,提高實用性。
1 Matlab與Excel接口技術
    Matlab與Excel是目前Matlab與外部各種程序接口中手段最多、也最完備的接口技術[1],主要有:(1)利用DDE(Dynamic Data Exchange)和自動化技術可以實現它們之間的鏈接;(2)Matlab提供了一個Excel Link插件,利用它可以直接在Excel環境下完成與Matlab的數據傳輸并運行Matlab命令;(3)通過Excel生成器可實現他們之間的連接。
    前兩種方式比較適合Client/Server模式,而Excel生成器這種方法則可以視應用系統的具體要求來做選擇。

  (1)DDE(Dynamic Data Exchange)允許Microsoft Windows應用程序通過交換數據實現彼此間的通信。應用程序間彼此通信要先建立一個DDE會話,對會話進行初始化的應用程序稱為客戶端(Client),對Client端作出響應的應用程序稱為服務器(Server);自動化技術可使解釋性的宏語言能夠在不了解應用程序實現細節的情況下控制自動化對象。
   (2)Excel Link是一個軟件插件,它將Excel和Matlab在微軟視窗環境下進行集成。通過鏈接Excel和Matlab,可以從Excel工作表和宏編程工具中獲得Matlab的數值計算和圖形繪制功能,能夠在兩個環境之間交換數據。Excel Link在Excel工作空間和Matlab工作空間之間進行通信時,它把Excel作為Matlab的前端,在Excel的工作表和宏中使用Excel Link函數,而不必離開Excel環境,Excel Link用少量的函數實現鏈接管理和數據操作,以簡便取勝。Excel Link的運行機制如圖1所示。

   (3)Matlab提供了一種Excel生成器,利用該工具可以將Matlab的M文件中的算法程序集成到其生成的一種DLL組件中,同時生成相應組件的VBA代碼。利用DLL組件,VBA代碼可以在Excel的Visual Basic編輯器中直接使用,可以保存為插件(Add-Ins)。其中,Excel生成器創建的COM對象暴露給VB程序環境一個類,該類包含一系列稱為方法的函數,對應于包含的組件工程中的原始Matlab函數。
    綜上所述,利用Excel生成器可以使開發者擁有更自由的開發空間,而在利用Excel生成器開發Excel插件的過程中有兩種方式。一種是通過將組件集成到VBA中,創建用戶界面后保存為插件[2];另一種是直接修改組件中的BAS文件,然后保存為插件[3]。兩者在生成組件的過程中相同,前者雖然在應用時比較靈活,但是其工作量較大,對編程人員的編程水平要求較高,而后者只需要修改組件中的BAS文件,工作量明顯減少。本文結合實例介紹通過修改BAS文件實現Matlab與Excel之間的無縫連接在電力系統數據分析中的應用。
2 應用舉例
    勵磁系統相頻、幅頻特性反應了對象在工作點線性化的特性[4],因此,PSS相頻、幅頻特性分析試驗是勵磁系統參數整定不可缺少的一環。本實驗具體過程為:試驗機組在有功P=252.6 MW、無功Q=4.2 MV、勵磁調節器恒電壓方式運行, AGC功能退出的工況下進行測試;發電機并網運行,勵磁調節器自動方式運行,PSS退出,無功調差單元退出,用頻譜儀測量輸出的偽隨機信號與發電機電壓信號之間的相頻特性即為勵磁系統無補償相頻特性。勵磁系統無補償相頻特性測試接線如圖2所示。    將試驗測量得的數據保存在Excel文檔中,通過調用由Excel生成器將Matlab程序集成到COM組件,進而修改組件中的BAS文件獲得所需要的插件進行數據處理。生成所需插件的具體步驟如下。

2.1創建工程
    在配置好編譯器的Matlab 6.5環境中,在命令行中輸入Matlab命令mxltool,顯示Matlab的Excel生成器主窗口。具體步驟為:
    在窗口中依次選擇File→New Project,打開“New Project Settings”對話框。
    (1) “Component name”文本框和“Class name”文本框
    在“Component name”文本框中輸入組件的名稱“Test”,在“Class name”文本框輸入類的名稱“Pssmodule”。組件是后面創建的名稱。輸入組件以后,生成器會自動輸入一個與組件名相同的類名,可以將類名改為其他描述性更強的名稱。
    (2) “Project Version”文本框
    在“Project Version”文本框中輸入組件的版本號。默認版本號為1.0,這里選擇默認版本號。
    (3) “Project Direction”文本框
    在“Project Direction”文本框中輸入工程目錄。工程目錄指定編譯和打包模型時,將工程和生成的文件放在那里,工程目錄根據當前目錄名和組件名自動創建為D:\Matlab\work\Test。
    (4) “Compile code in”方框
    在該方框中選擇生成C++代碼,因為C++組件可讀性更強,更便于修改。
2.2 管理M文件
    創建工程以后,主窗口中的“Project”、“Build”和“Component”等菜單選項變為可用,單擊“Add File”按鈕或依次選擇Project →Add File,在工程中添加測試好的M文件。
2.3 生成組件
    定義工程設置和添加M函數后,可以生成一個可配置的DLL文件和必要的VBA代碼。依次選擇菜單選項Build→Excel/COM Files或單擊“Build”按鈕,激活Matlab編譯器,將中間的源文件寫到Test \src,將進行配置的輸出文件寫到Test \distrb目錄。
2.4 生成插件
    前面生成的組件中有由Excel Builder直接生成的.BAS文件,不需經過修改就可以直接將組件集成到VBA中、創建圖形用戶界面然后保存為插件,生成的插件可以直接使用。這種方法中,函數根據輸入的參數,調用編譯得到的組件后將答案繪制出來,而且計算的數據不返回Excel環境中。這里的宏由公式函數實現,它能夠將標量形式的返回值返回到Excel環境。然而在使用Excel進行數據處理時,需要將所有的計算結果都顯示在電子表格中。在用Excel Builder創建Excel插件時,為了能夠克服這些不足,就必須修改.BAS文件。通過修改由Excel生成器生成的.BAS文件函數能夠返回矩陣并且填充Excel單元格。這種方法相對前一種方法來說工作量很少。
    對修改好的.BAS文件進行保存生成Excel的插件,然后通過調用宏指令mytest就可以得到分析的數據和勵磁系統幅頻、相頻特性圖。Excel界面如圖3所示。發電機勵磁系統無補償和有補償相頻特性曲線比較圖如圖4所示。從圖4可看出在投入PSS后勵磁系統的相頻特性得到了有效的改善。

 

 

    利用接口技術將Matlab程序集成到Excel插件中實現兩者之間的無縫連接,充分利用Excel數據載體和Matlab數據處理能力的優勢,將生成的插件打包和發布供Excel調用,使得工程數據分析處理更加方便快捷。
參考文獻
[1] 蘇金明,黃國明,劉波. Matlab與外部程序接口[M]. 北京:電子工業出版社,2004.
[2] The Math Works, Inc.Matlab Excel Builder User’s Guide[M]. Natick: The MathWorks, Inc,2002.
[3] 張威.Matlab應用程序集成與發布[M].西安:西安電子科技大學出版社,2005.
[4] 竺士章.發電機勵磁系統實驗[M].北京:中國電力出版社,2005. 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 中文亚洲日韩欧美 | 毛片看看 | 欧美日韩国产在线播放 | 国产亚洲新品一区二区 | 青青青国产精品国产精品美女 | 成人午夜小视频手机在线看 | 任我鲁这里有精品视频在线播 | 国产精品免费aⅴ片在线观看 | 国产在线高清视频 | a级黄色毛片免费播放视频 a级黄色毛片 | 日日射天天射 | 黄色一级片观看 | 99综合 | 成人福利免费观看体验区 | 91久久天天躁狠狠躁夜夜 | 国产 日韩 欧美在线 | 波多野结衣中文一区二区免费 | 一级高清毛片免费a级高清毛片 | 五月开心综合 | 欧美一级视频在线观看欧美 | 青草视频在线观看视频 | 老司机免费精品视频 | 性欧美日本 | 97精品视频在线观看 | 国产精品视频在这里有精品 | 天天做天天摸天天爽天天爱 | 日本不卡三级 | 欧美亚洲日本 | 国产日产欧美一区二区三区 | 羞羞污视频 | 国产va欧美va在线观看 | 国产第四页 | 欧美日韩另类国产 | 丝袜综合 | 羞视频在线观看 | 久99re视频9在线观看 | 日本亚洲天堂 | 日本免费高清视频二区 | 在线观看一区二区三区视频 | 成人精品一区二区三区 | 在线观看免费播放网址成人 |