基于自动微分技术的内点法最优潮流算法(2)

2019-06-11 08:56

变量对某一自变量求偏导数; 相反,反向模式就某一因变量对所有自变量求偏导数,在计算图中由上向下计算。因为前向模式比较简单,所以在本文中我们只介绍反向模式。

在反向模式中,函数f?x1,x2,...,xn?的偏导数?y/?xi可由?y/?xj得出:

?y?y?xjj是i的偏导数。 ?? ,?xij?xj?xiAD的反向模式完整推倒如下:

?y?x9??1?x9?x9?y?y?x9?y??x8/x3?1????x8?x9?x8?x9?x8x3?y?y?x8?y??x6?x7?1????x7?x8?x7?x8?x7x3?y?y?x8?y??x6?x7?11????1??x6?x8?x6?x8?x6x3x3xx?y?y?x7?y??x4x5?1???x4?12?x5?x7?x5?x7?x5x3x3?y?y?x6?y?x7?+?x4?x6?x4?x7?x4x4?y??e??y??x4x5??+?x6?x4?x7?x4

ex1x2?sinx3?x3?y?y?x9?y?x5?+?x3?x9?x3?x5?x3???y??x8/x3??y??sinx3?+?x9?x3?x5?x3x1x2x3cosx3?12x3?y?y?x9?y??x1x2?ex1x2?sinx3????x1?x2?x4?x2?x4?x2x3?y?y?x4?y??x1x2?ex1x2?sinx3????x2 ?x1?x4?x1?x4?x1x3假设在反向模式中用xi代表?y/?xi,函数(6)的前向模式和反向模式应用如Fig.2

反向模式的缺点在于需要存储整张计算图占用大量的内存空间, 。在OPF 问题中,函数(约束条件) 数量远大于变量数量,而前向模式不需要存储整张图表即可完成计算,节省了CPU 时间和内存开销。因此,选取前向模式AD 技术来实现本文的OPF 算法。 AD 主要有2 种实现方法:基于源代码变换和基于操作符重载。前者可用于所有程序语言,将程序源代码中求取导数的宏指令转换为自动计算导数的代码,源代码和新代码都在编译器编译后调用。此类软件的代表为ADIC和ADIFOR。但其执行困难。因为AD机理只用于预编译阶段而不是运行阶段,基于源代码变换缺乏灵活性;一旦原始公式发生变化整个程序都需要重新编译。此外,它很难通过子程序的导数去调用程序。新的程序语言功能也不易添加至工具中。

操作符重载方法利用C + + 等高级语言中操作符重载的机理,其在前向模式中非常易于实现,并且占用很少内存。此类软件主要有ADC。

ADOL-C和CppAD。

操作符重载是指像加、减、等号等运算符在不同面向对象程序语言中具有不同的功能。活跃变量运算时操作符会被自动重载,以此来隐式的控制AD的计算流程。用操作符重载方法的AD工具计算雅可比和海森矩阵更加高效,占用更少的内存空间。

基于操作符重载的AD易于计算和修改,在保持了计算高效性同时节约了开发时间。因此本文选择了基于操作符重载的AD作为解决OPF问题的工具。经过大量OPF问题测试证明,在ADC,ADOL-C,和CppAD中只有ADC较适合大规模OPF。ADC是由Vivlab Company开发的基于操作符重载的前向模式AD工具。 B.

一般算法

一般算法利用AD 直接替代内点法中计算Jacobian 矩阵和Hessian 矩阵的代码,AD 通过利用函数计算代码来自动求取相应矩阵,算法流程如下:

步骤1 :为AD 分配内存,声明活跃变量(即需要利用前向模式求导的自变量) 。

步骤2 :分别调用计算f ( x) , g ( x) , h ( x) 的代码,其中,活跃变量运算中使用的操作符会被AD 自动重载,记录由自变量到函数值的计算步骤。

步骤3 :调用前向模式生成相应的J acobian 矩阵和Hessian 矩阵,并提交给内点法以完成迭代。

步骤4 :更新变量值。如果迭代终止,则释放内存并退出;否则转至步骤2 ,进入下一次迭代。 算法步骤Fig.3

C.

改进算法

AD工具一般直接采用B中所描述的一般算法。然而,如果用直角坐标和内点法处理OPF问题,则有以下显著特征: 1)

潮流方程由不匹配公式表示,如

?Ixi???Gijej?Bijfj??0?j?i (7) ??Iyi???Gijfj?Bijej??0j?i?其中Ixi和Iyi表示流入第i条线路的电流。当线路不带发电机和负载

22时,Ixi?Iyi?0。当线路带发电机和负载时,Ixi??PGDiei+QGDifi?/?ei?fi?,

Iyi??PGDifi?QGDiei?/?ei2?fi2?,PGDi??k?iPGk?PDi,QGDi??k?iQGk?QDi。易知,

??Gej?iijj?Bijfj?和?j?i?Gijfj?Bijej?的一阶导数为常数,若Gij和Bij为常

数则二阶导数为0。考虑到这个特点,改进的AD算法在处理潮流等式时如下:

I) 识别非零输入线路,由AD获得Ixi和Iyi的一阶和二阶导数。 ii)识别非恒定阻抗支路,如带有控制阀,移相器,FACTS设备,HVDC链接的支路,并由AD工具获得连接线路i和j的非恒定阻抗支路的

Gijej?Bijfj和Gijfj?Bijej的一阶和二阶导数。

iii)对于零输入线路,Ixi和Iyi的一阶和二阶导数均为0;恒定阻抗支路的Gijej?Bijfj和Gijfj?Bijej的一阶导数为常数,二阶导数为0.这些常导数由AD工具获得;但在迭代程序中不能被AD更新。

在改进算法中,只有非零输入线路和非恒定阻抗支路的一阶二阶导数在迭代中需要被AD工具更新。其它不变元素只被AD计算一次后就保存在链表中。 2)

在内点法算法中,目标函数和约束条件多被表述为一个具有活

222?e?f?V动变量的多项式;例如线电压约束条件为:Vi2miniiimax

其二阶导数为不变元素。

又例如,当不表函数是系统实际功率损耗最小值时,

2?f?x????Gff?ei2?fi2??Gtte2?fj??Gft?Gft??eiej+fifj? j????显然,f?x?大多数二阶导数为常数。

在一般AD工具,高级AD工具(如ADC)中运用了稀疏矩阵技术,避免了对零元素的重复计算。然而这些AD工具不能避免对不变元素的重复计算。在直角坐标下的OPF问题中,大多数目标函数和约束条件的


基于自动微分技术的内点法最优潮流算法(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:施工组织设计- 副本 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: