GAMS系列分享7-电力系统最优潮流-5节点最优潮流
本节主要探讨 5节点电力系统
基于直流潮流的
电力系统最优潮流计算。
参考:GAMS系列分享6-电力系统最优潮流-3节点最优潮流.(编程一模一样),四舍五入任何规模大小的电力系统最优潮流你都会编程了。只是模型数据多了点。
1,物理模型
2,数学模型
式1,为优化目标
式2,线路直流潮流计算
式3,是各节点功率平衡
式4,线路潮流约束
式5,发电机出力约束
3,程序
*DC-opf five bus
*集合定义
Sets bus /1*5/,slack(bus) /1/,gen /g1*g5/;
scalars sbase /100/;
alias (bus,node);
*参数
table gendata(gen,*)
b Pmin Pmax
g1 14 0 40
g2 15 0 170
g3 30 0 520
g4 40 0 200
g5 20 0 600;
set GBconect(bus,gen)
/1 . g1
1 . g2
3 . g3
4 . g4
5 . g5 /;
table busData(bus,*)
pd
2 300
3 300
4 400 ;
set conex
/1 . 2
2 . 3
3 . 4
4 . 1
4 . 5
5 . 1 /;
conex(bus,node)$conex(node,bus)=1;
table branch(bus,node,*)
x limit
1 . 2 0.0281 400
1 . 4 0.0304 400
1 . 5 0.0064 400
2 . 3 0.0108 400
3 . 4 0.0297 400
4 . 5 0.0297 240 ;
branch(bus,node,'x')$(branch(bus,node,'x')=0)=branch(node,bus,'x');
branch(bus,node,'limit')$(branch(bus,node,'limit')=0)=branch(node,bus,'limit');
branch(bus,node,'bij')$conex(bus,node) = 1/branch(bus,node,'x');
*变量定义
Variables Pij(bus,node),pg(gen),delta(bus),of;
*方程定义
Equations const1,const2,const3;
const1(bus,node)$conex(bus,node)..pij(bus,node)=e=branch(bus,node,'bij')*(delta(bus)-delta(node));
const2(bus)..+sum(gen$gbconect(bus,gen),pg(gen))-busdata(bus,'pd')/sbase
=e=sum(node$conex(node,bus),pij(bus,node));
const3..OF=g=sum(gen,pg(gen)*gendata(gen,'b')*sbase);
model loadflow /all/;
pg.lo(gen)=gendata(gen,'Pmin')/sbase;
pg.up(gen)=gendata(gen,'pmax')/sbase;
delta.up(bus)=pi;
delta.lo(bus)=-pi;
delta.fx(slack) =0;
pij.up(bus,node)$conex(bus,node)=branch(bus,node,'limit')/sbase;
pij.lo(bus,node)$conex(bus,node)=-branch(bus,node,'limit')/sbase;
solve loadflow min of us lp;
*存储计算结果
parameter report(bus,*),congestioncost;
report(bus,'gen(MW)') = sum(gen$GBconect(bus,gen),pg.l(gen))*sbase;
report(bus,'load(MW)') = busData(bus,'pd');
report(bus,'angel') = delta.l(bus);
report(bus,'LMP($/MW)')= const2.m(bus)/sbase;
congestioncost = sum((bus,node),pij.l(bus,node)*(-const2.m(bus)+const2.m(node)))/2;
*congestioncost = sum((bus,node),pij.l(bus,node)*(-const2.m(bus)+const2.m(node)))/2;
display report,pij.l,congestioncost;
4,求解结果
5,重要知识点讲解
没有重要知识点。和3节点的编程一模一样
一模一样
一模一样
6,一定要背下来的步骤:(几乎所有的程序都是这样)
理解程序的重点来了。
对所有的程序进行这样的拆解,有助于自己快速掌握编程。
1,定义集合
电力系统常见的单维集合:bus,gen,slack(bus)。
多维集合:conex(bus,node) ,GBconect(bus,gen) ;
集合的多重命名: alias(bus,node)。
2,写参数
发电机参数 :Gendata(gen,*)
负荷大小参数 :busData(bus,*)
线路参数 : branch(bus,node,*) 这个地方注意***,详见5.4
3,设变量
发电机出力大小 pg(gen)
线路上的潮流大小 Pij(bus,node)
各母线的相角 delta(bus)
优化变量:OF
4,写约束
等式约束:线路有功潮流 const1
母线节点功率平衡 const2
目标函数:const3
不等式约束:发电机出力上下限,因为不涉及变量间的运算,直接用.lo,.up约束,更简洁
同样的线路潮流上下限
5,赋初值
对平衡节点的相角为0 用到的.fx ,delta(bus).fx
6,建 模型,求模型
本文是目标函数只考虑了b,是线性规划LP问题。
欢迎关注系列GAMS分享,现在更新电力系统最优潮流的GAMS求解。
本期重点:和3节点模型编程一模一样
上一篇: Mysql-8.0.21安装及使用教程
下一篇: 计蒜客T1217 马走日(DFS)