《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 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网站原创,未经授权禁止转载。