基于Delphi和Matlab混合编程的配电网无功优化软件设计.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于Delphi和Matlab混合编程的配电网无功优化软件设计.pdf》由会员分享,可在线阅读,更多相关《基于Delphi和Matlab混合编程的配电网无功优化软件设计.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3 1 卷第4 期 2 0 1 1 年4 月电力自动化设备E l e c t r i cP o w e rA u t o m a t i o nE q u i p m e n tV 0 1 3 1N o 4A p r 2 0 1 1基于D e l p h i 和M a t l a b 混合编程的配电网无功优化软件设计王建勋,吕群芳,刘会金(武汉大学电气工程学院,湖北武汉4 3 0 0 7 2)摘要:应用D e l p h i 和M a f l a b 混合编程的方法设计可视化的配电网无功优化计算软件。其中D e l p h i 实现图形界面和数据管理M a t l a b 实现无功优化计算和
2、绘图功能。使用M a n a b 软件中的C O M 组件封装工具对M a n a b 程序进行打包并在D e l p h i 中注册该C O M 组件以实现对M a t l a b 程序的调用。通过O l e V a r i a n t 变量格式或者文本文件动态传递矩阵参数;通过剪切板操作或窗口嵌套将M a t l a b 的图形窗口嵌入到D e l p h i 环境中。指出通过分散文档或稀疏矩阵的形式进行参数传递,对不同形式变量进行合理的定义,可提高程序的运行效率。简要介绍了配电网无功优化的数学模型,并采用自适应的微分进化算法作为无功优化算法。算例结果表明该软件应用效果良好。关键词:混合编
3、程:C O M 技术:无功优化:微分进化算法中图分类号:T M7 3 1文献标识码:B文章编号:1 0 0 6 6 0 4 7(2 0 1 1)0 4 一0 1 1 2 一0 4配电网无功优化是保证配电系统安全经济运行的有效手段也是提高电力系统电压质量的重要措施之一。开发一套可视化的、易学易用的适用于配电网的无功优化软件使运行调度人员和规划设计人员能在良好的人机接E l 下,实现快速准确的资料录入、计算分析和结果显示具有重要意义 引。由于在无功优化中需要反复地进行潮流分析存在大量的数值及矩阵运算。处理过程耗时耗力。如果采用计算和图形功能强大的M a t l a b 语言和可视化编程语言相结合进
4、行混合编程,便可容易克服这些问题,并能实现程序的可视化【矧。鉴于D e l p h i 语言在可视化编程和数据库处理方面的优越性:刮本文使用D e l p h i 与M a t I a b 混合编程方法进行配电网无功优化软件的设计说明了如何通过C O M 技术实现D e l p h i 对M a t l a b 的调用并脱离M a t l a b 环境运行并实现了M a f l a b 绘图在D e l p h i环境中的嵌入。同时介绍了无功优化的模型并选用一种自适应的微分进化算法作为优化算法最后用算例验证了该软件有着良好的应用效果。l 软件功能可视化配电网无功优化软件是一个基于图形界面的配电
5、网无功优化计算及其数据库管理的高级应用软件其从功能上可分为图形界面模块、数据管理模块及计算模块三大功能模块。轧图形界面模块。采用D e l p h i7 0 中的矢量绘图控件T C A D 开发可完成主接线图的绘制和参数录入。在建立图形主界面时可利用设备图元的属性自动生成参数信息后存入相应数据库也可以通过外部数据文件直接导人数据。k 数据管理模块。选择M i c r o s o f t0 m c eA c c e s s收稿1 3 期:2 0 1 0 0 5 0 5;修回日期:2 0 1 1 0 1 1 9作为数据库开发工具在D e l p h i 中通过A D O 组件对后台数据库动态连接从
6、而实现了快速高效地对用户信息、配电网中各元件的原始设备参数以及计算所得结果等数据进行管理方便用户进行查询。c 计算和绘图模块。选用矩阵运算功能强大的M a t l a b2 0 0 9 开发无功优化计算模块包括了配电网潮流计算、无功规划优化计算、无功运行优化计算和绘图4 个部分。图形界面模块工数据管理模块工计算和绘图模块图l 系统功能结构图F i g 1S t r u c t u r eo fs y s t e mf u n c t i o n s2D e l p h i 与M a t l a b 混合编程传统的M a t l a b 程序调用方法存在环境和参数设置复杂或者不能脱离M a t
7、l a b 软件环境运行的缺点L 9 1。文献 9 指出采用C O M 技术可将M a t l a b 的M文件转换为C O M 组件后在D e l p h i 中直接调用。该方法能避免复杂的环境设置过程同时C O M 组件可以方便地随同应用程序进行发布实现脱离M a a b软件环境运行。M a t l a b6 5 以上版本中所推出的C O MB u i l d e r 工具可方便地制作出所需的C O M 组件只要在打包组件选择包含M C R 即可产生与工程同名的可执行文件。运行该文件便可自动进行C O M 组件注册并安装M a a b 程序运算时所需调用的计算程序M C R一一一一一一一一
8、一一一一一一一一粕可视化配电网无功优化计算系统万方数据第4 期王建勋,等:基于D。1 p h i 和M a d a b 混合编程的配电网无功优化软件设计I n s t a l l e e x e 从而保证在需要发布的计算机上正常运行。本软件采用较新的M a t l a bR 2 0 0 9 a 版本,其C O M组件制作工具为G e n e r i cC O Mc o m p o n e n t 已经被集成到M a t l a bB u i l d e rN E 工具中具体的制作过程大致不变。2 1 函数调用方法在本机调试时还需要先在D e l p h i 软件中注册C O M组件,具体的配置
9、过程可参见文献 9 。配置工作完成后直接以下面的形式调用M a t l a b 函数:e l a s s n a m e f u n e t i o n(h u m,o u t p u t l,i n p u t l,);其中c l a s s n a m e 为相应的控件名。f u n c t i o n 为所调用的函数,n u m 为输出变量数目,紧接着的是输出变量名和输入变量名。2 2 参数传递方法D e l p h i 中的O l e V a r i a n t 变量包含了所有与O L E自动化兼容定义的数据类型通过O l e V a r i a n t 变量的操作数据可以自由地在程序
10、或者网络之间交换而不用担心其他支持O L E 自动化的用户能否操作这些数据。所以使用O l e V a r i a n t 变量即可保证多种数据格式的自动兼容若传递的是矩阵,利用V a r A r r a y C r e a t e函数即可动态设置传递数组(即矩阵)的大小,如:d a t a:=V a r A r r a y C r e a t e(1 m,1,n,v a r D o u b l e);动态设置m 行n 列的双精度矩阵d a t a或者在函数调用时不传递任何变量使用b【t 文档来传递所需数据。参数信息由D e l p h i 按字符串的形式黼 乜【t 文档而M a t l a
11、b 程序使用d l m r e a d,d l m w r i t e或者l o a d、s a v e 函数直接对t x t 文档中的数据进行读写。D e l p h i 回读t x t 时仍旧按字符串读取然后再做转换为自动识别分隔符,可使用d i n e 方式截取:t f i l e:=t s t r i n g l i s t C r e a t e;d i n e:-t s t r i n g l i s t C r e a t e;t f i l e L o a d F m m F i l e(m y r e s u l t,t x t);加载矩阵数据t l i n e C o m
12、m a T e x t:=m l e S t r i n g s i ;f f i 行数据分解d i n e 即表示i 行i 列的元素(序号从0 开始),可将计算结果逐个回存数据库,方便后续查询打印。2 3 图形嵌入方法图形嵌入可通过剪切板操作实现在M a t l a b 程序中将图形复制到系统剪贴板上:f i g u r e(V i s i b l e,o f f);图形置为不可见p r i n t-d I t a;图形复制到系统剪切板然后在D e l p h i 中将图形粘入T i m a g e 组件:i f(C l i p B o a r d H a s F o r m a t(C F
13、 _ B I T M A P)t h e ni m a g e l P i c t u r e A s s i g n(c l i p b o a r d);上述方法实现简单。但因是静态图像图形工具栏被去除并且不能进行图形设置。若要保留工具栏和图形设置功能,则需要通过窗口嵌入来实现。具体做法就是在M a t l a b 中先画一个很小的窗口(若置不可见。后面寻找窗口可能会失败)。然后在D e l p h i 中寻找该窗口。并将其嵌入窗体控件中:v a l rh:H W N D;窗口句柄变量l S t v l e:l g i m;表示窗口设置的变量b e g i nh:=F i n d W i
14、n d o w(n i l,F i g u r el);寻找图形窗1 2 1S h o w W i n d o w(h,S WH I D E):I S t y l e:-G e t W i n d o w L o n g(h,G W L _ S 眦);S e t W i n d o w L o n g(h G W L _ S T Y L E,1 S t y l e);S e t W i n d o w P o s(h,H W N D _ T O P M O S T 0,0,p a n e l l W i d t h。p a n e l l H e i g h t,S W P-S H O W W
15、 I N D O W);设置图形大小、位置等参数w i n d o w s S e t P a m n t(h,p a n e l l H a n d l e);嵌入p a n e le n d2 4 提高混合编程效率的几点建议D e l p h i 调用M a t l a b 函数时所传递的变量大多是矩阵数据。为提高调用效率本文选择将不同的矩阵数据分散写入不同的文档中M a t l a b 函数对数据即取即用,对如关联矩阵似的稀疏矩阵,则先在D e l p h i 中以三维数组的形式形成以减少数据的冗余性并便于M a t l a b 函数直接对稀疏矩阵操作。而在M a t l a b 函数实
16、现中。尽量采用稀疏矩阵运算。减少循环操作,并将常用变量作为全局变量定义避免变量的频繁传递。节省内存空间从而提高计算效率。3 配电网无功优化计算的数学模型配电网无功优化包括无功规划优化和无功运行优化。规划优化通过优化无功补偿装置的安装地点、容量达到降低网损、提高电压质量及节约投资的目的。无功运行优化通过调节已有设备,如变压器分接头和确定电容器的投切组数,实现网损最小的目标。3 1 配电网无功规划优化的数学模型无功规划优化的目标函数包括无功补偿装置设备年等值费用、系统有功网损年等值费用、节点电压越限罚函数即m i nF=Q d+o c+G 岛凡+鼠l 研(1)约束条件包括:p(石)=0玑咖以,oi
17、 E(2)f q 一配。奶 劬一a E=o 坼 I。一以配 q 豳其中,疋为单位容量电容器的投资费用,Q 西为节点i无功补偿容量,o 为无功补偿点集合;o 为每个节点的电容器固定安装费用,M 为无功补偿点的个数;c e为电能单价,t 1 为年最大负荷损耗时间,气为最大负荷方式下的有功网损;丘,为节点电压越限罚因子,为系统节点数;以、为节点i 电压及其下限和上限。为提高计算效率在本程序中采用了无功电流损耗最小法 1 0】确定补偿点位置和相应的最大补偿容量,并采用分层前推回代算法 1 I:计算潮流。3 2 配电网无功运行优化的数学模型无功运行优化的目标函数为,vm i nF=A 凡+研(3)约束条
18、件包括:p(x)=0(4)。以C,oE(5)万方数据G 凼G G hi E&(6)。Z ki e S k(7)其中,&、S。分别为可投切电容器节点集、可调变压器节点集;G、分别为节点i 投切电容器组数及其上、下限;正、k、k 分别为变压器档位数及其上、下限;如为电压越限罚系数。需注意的是。这里不需要像规划一样计算费用值。故可直接用标幺值计算。4自适应微分进化算法原理4 1 微分进化算法原理微分进化算法是一种通过模拟生物进化现象来表现复杂现象的概率搜索算法:n 其基本操作包括种群初始化、变异、交叉和选择。4 1 1种群初始化首先在解空间内产生随机分布的初始种群第i个个体的第,个参数值可由下式得到
19、:戈,0=X:i n+r(菇一戈)i=l,0;=1,D(8)其中,r 为0 一l 之间的随机数;P 为种群大小;D 为个体维度;九和如分别为控制变量的上、下边界。4 1 2 变异操作对第G 代的个体茗心通过某种变异操作获得其变异向量。本文采用全局搜索性能最佳的变异算子 1 3 以确保能获得最优解,其表达式如下:嚏c=碥G+F(缟G 一c)(9)其中,口i。表示第i 个个体的第歹个变异元素;r、1 2、1 3为从l。P 中随机选取的整数,且不为i;比例因子F为表征差异大小的控制参数。4 1 3 交叉操作在变异操作后,对当前向量X。和其相应的变异向量V G 进行交叉操作可得到试验向量职。,交叉算子
20、为二项交叉表达式为叫意嚣或者一刮(1 0)啦,6 2 I 戈 c其他()其中,C 为表征进化参数的变异概率,取值0 l;山为从1 P 中随机选取的整数。如果试验向量某些位置的参数值越限。则将其在限定范围内重新随机产生。4 1 4 选择操作如果试验向量有更优的适应度函数。则试验个体将取代当前个体进入下一代。本文为求最小化问题选择操作可用下式表达:。=陇嚣垮肥c)4 2 自适应参数控制控制参数经验值为:F=0 1,0 9,P=5 D。I O D,c r=0 l。其中,c r 越大,收敛速度越快,但是存在局部收敛的可能性。F 和P 取得越大对搜索全局最优解更有利。而越小则有可能导致早熟 1 3 j。
21、鉴于此为提高计算效率本文采用参数自适应控制来动态设置F 和c T,两者随进化过程一同进化 1 4】:协棼删加9 裂如J(1 2)-掣裁如1,4 3自适应微分进化算法流程图自适应微分进化算法流程图如图2 所示。开始山T调用潮流计算程序求适应度值l 输入网络原始数据山山选择、调整进化参数初始化,。、N豳睁1网巨到I图2 自适应微分进化算法流程图F i g 2F l o w c h a r to fa d a p t i v ed i f f e r e n t i a le v o l u t i o na l g o r i t h m5 算例分析以I E E E3 3 节点系统 1 5:为例进
22、行配电网无功规划优化计算。算法控制参数选为:系统电价c e=0 4 5 元(k W h),最大负荷损耗时间t l=47 6 0h,基准容量S。=1 0 0 0 0 k V A 补偿电容器的单位容量价格疋=5 0 元k v a r,每个节点电容器固定安装费用C H=0 5 万元;电容器的最小单位容量为4k v a r 种群规模P=3 0,最大代数。产1 0 0,采用无功电流损耗最小法求得的待补偿节点2 9、7、2 3、1 3、1 7,可能的最大补偿容量为3 0 0 x 4k v a r 利用待补偿节点构成了微分进化算法的寻优空间再结合自适应微分进化算法进行优化,图3 为算法的收敛曲线其中C 为费
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Delphi Matlab 混合 编程 配电网 无功 优化 软件设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内