类扩展及其应用

InterPSS采用Java和面向对象技术建模,允许用户通过继承、复合等方法实现模型扩展。在本章中,我们将以DC-OPF的开发进行展示。直流最优潮流功能的开发扩展了InterPSS现有的系统模型,通过开发程序接口有效整合了开源二次规划问题求解工具QuadProgJ,最终在InterPSS软件平台上实现。扩展内容主要包括三部分:1)扩展原有潮流计算的发电机节点模型和网络模型;2)将DC-OPF问题转换为严格凸二次规划(SCQP)问题;3)编写程序接口,开源SCQP求解器QuadProgJ作为外部插件引用并实现问题求解。

4.1模型扩展

图4-1展示了基于潮流模型的节点和网络模型扩展(灰色背景为InterPSS原有模型类,蓝色背景为引入的外部插件类,其余为扩展模型类)。用于OPF分析的节点类OpfBus由原来的潮流计算节点类AclfBus扩展而来,具有节点边际价格(LMP)信息;而OpfGenBus继承了OpfBus,并增加了OPF分析中的发电机经济运行属性(由于显示原因,并非所有扩展属性都在图中描述或显示)。支路类OpfBranch是基于潮流计算支路类AclfBranch扩展。新的网络类OpfNetwork继承了潮流计算网络类AclfNetwork,具有总发电成本等优化目标属性。

图4.1. 直流最优潮流模块的主要类及其关系

OpfGenBus基于AclfBus的扩展实例如下:

OpfGenBus

public interface OpfGenBus extends AclfBus {

public void setCoeffA(double coefficientA);

public double getCoeffA();

public void setCoeffB(double coefficientB);

public double getCoeffB();

public void setCapLowerLimit(double capLowerLimit);

public double getCapLowerLimit();

public void setCapUpperLimit(double capUpperLimit);

public double getCapUpperLimit();

public void setFixCost(double newFixCost);

public double getFixCost();

public void setAclfBus(AclfBus aclfBus);

public AclfBus getAclfBus();

}

4.2 DCOPF求解模型——二次规划问题

本文采用文献[1]中的扩展直流最优潮流的模型。该模型引入电压相角偏差量罚因子,目标函数中增加了线路两端功角差平方和,如式(1)

(1)

式中各变量具体意义见文[1]。此环节定义了EqIneqMatrixBuilder类,主要用于形成模型中相关参数矩阵。

EqIneqMatrixBuilder Code

public class EqIneqMatrixBuilder {

private OpfNetwork opfNet = null;

//省略构造器及其他一些方法,下面是形成节点功率平衡约束相关的Beq向量。

public ArrayRealVector formBeq() {

ArrayRealVector beq =

new ArrayRealVector(opfNet.getNoActiveBus());

for (Bus b : opfNet.getBusList()) {

OpfBus acbus = (OpfBus) b;

int busIndex = acbus.getSortNumber();

if (acbus.isLoad()) {

beq.setEntry(busIndex, acbus.getLoadP());

}

}

return beq;

}

}

4.3编写程序接口

该环节通过QuadProgDCOPFSolverImpl类实现了接口DCOPFSolver,调用QuadProgJ实现问题求解和回存优化结果到OpfNetowork模型中。该实现模式可适应未来扩展,其他SCQP问题的求解工具或方法只要实现DCOPFSolver接口,即可插入本程序实现功能扩展。

4.4算例

采用改进的IEEE30节点系统[Data: IEEE30ODM.XML],电压相角偏差量罚因子Pi取值0.05,计算结果见表1。

表1. IEEE 30节点系统直流最优潮流结果统计表

源代码:

http://code.google.com/p/interpss/source/browse/#svn%2Ftrunk%2Fipss.opf

测试例子

http://code.google.com/p/interpss/source/browse/#svn%2Ftrunk%2Fipss.opf.test

Reference

[1] Sun J,Tesfatsion L.DC optimal power flow formulation and solution using quadprogj[J/OL].http://www.econ.iastate.edu/tesfatsi/DC-OPF. JSLT.pdf,2007