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

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

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

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

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

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

 

 

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。