GAMS系列分享6-电力系统最优潮流-3节点最优潮流

更新时间:2023-07-02 02:53:25 阅读: 评论:0

GAMS系列分享6-电⼒系统最优潮流-3节点最优潮流          本节主要探讨      3节点电⼒系统
基于直流潮流的
电⼒系统最优潮流计算。
⽬录
1,物理模型
once in the long ago>reicat2,数学模型
式1,为优化⽬标
式2,线路直流潮流计算
式3,是各节点功率平衡
式4,线路潮流约束
式5,发电机出⼒约束3,程序
* DC-OPF  three-bus network
*集合定义
Sets bus /1*3/,slack(bus) /3/,gen /g1*g2/;
scalars sba /100/;
alias (bus,node);
*参数设置
Table Gendata(gen,*)
b    Pmin    Pmax
g1    10    0      65
g2    11    0      100;
t GBconect(bus,gen)
/1  .  g1
3  .  g2 /;
Table busData(bus,*)
pd
2      100 ;
t conex
/1  .  2
2  .  3
1  .  3/;
conex(bus,node)$(conex(node,bus))=1;
Table branch(bus,node,*)
x        limit
1  .
2        0.2      50
2  .
3        0.25    100
1  .  3        0.4      100 ;
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')/sba
=e=sum(node$conex(node,bus),pij(bus,node));
const3..OF=g=sum(gen,pg(gen)*gendata(gen,'b')*sba);
*模型建⽴,赋初值,模型求解
model loadflow /all/;
pg.lo(gen)=gendata(gen,'Pmin')/sba;
pg.up(gen)=gendata(gen,'pmax')/sba;
delta.up(bus)=pi;
delta.lo(bus)=-pi;
delta.fx(slack) =0;广州成人高考学校
pij.up(bus,node)$conex(bus,node)=branch(bus,node,'limit')/sba;
pij.lo(bus,node)$conex(bus,node)=-branch(bus,node,'limit')/sba;
solve loadflow min of us lp;
*求解结果展⽰
vehicle读音parameter report(bus,*),congestioncost;
report(bus,'gen(MW)') = sum(gen$gbconect(bus,gen),pg.l(gen))*sba;
report(bus,'angle')  = delta.l(bus);
report(bus,'LMP($/MW)') = const2.m(bus)/sba;
筢子congestioncost = sum((bus,node),pij.l(bus,node)*(-const2.m(bus)+const2.m(node)))/2;
display report,pij.l,congestioncost;
4,求解结果
5,重要知识点讲解
这个模型已经初步成型,为什么这么说,
因为各节点功率平衡上,⽤到了
⼀定⾃⼰动⼿敲⼀敲
⼀定⾃⼰动⼿敲⼀敲
后期会做⼀个总结,整理出⼀个电⼒系统最优潮流的框架出来,不管多么的系统都可以套⽤的模板,哈哈哈。
5.1.集合的⼦集
slack(bus)
5.2 集合的多重命名
alias (bus,node)
为什么给母线bus集合多重命名,就是因为要对母线进⾏多重索引。初学者可能不太明⽩,其实索引是个⾮常重要的概念
理解下⾯这个约束,可能会对你多重命名有个更清楚的认识:
ill是什么意思const1(bus,node)$conex(bus,node)..pij(bus,node)=e=branch(bus,node,'bij')*(delta(bus)-delta(node));
该⽅程的含义是:对所有的线路进⾏直流潮流计算。
下⾯附上gams⽤户⼿册对集合多重命名的⽚段加强理解。
5.3 多维集合
conex (bus,node)      母线和母线的关系
GBconect(bus,gen)        发电机集合和母线集合的关系
silent night歌词
前期分享过为什么建⽴多维集合,多维集合的⽬的就是建⽴集合之间的关系。
本程序中,建⽴的conex就是母线集合和母线集合的关系,母线和母线之间的联系不就是线路吗?发电机和母线的关系不就是
5.4 关键点:***(对其理解极其重要)
conex(bus,node)$(conex(node,bus))=1;
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');
举例说明,该段程序的重要性。⼿动输⼊的为:
Table branch(bus,node,*)
x        limit
1  .
2        0.2      50
2  .
3        0.25    100
1  .  3        0.4      100 ;
branch(1,2,x)=0.2;但是却没有定义branch(2,1,x)=0.2; 在后边应⽤branch(2,1,x)的时候就会认为
branch(2,1,x)=0。
后边的⽅程:const1(bus,node)$conex(bus,node)..pij(bus,node)=e=branch(bus,node,'bij')*(delta(bus)-delta(node)); GAMS在解析的时候会会有:Pij(2,1)=branch(2,1,'bij')*(delta(2)-delta(1));
branch(2,1,'bij')=1/branch(2,1,'x');分母为零,因此会出现错误。
意识到这个重要性了吗哈哈哈哈
意识到这个重要性了吗哈哈哈哈
6,⼀定要背下来的步骤:(⼏乎所有的程序都是这样)
理解程序的重点来了。
对所有的程序进⾏这样的拆解,有助于⾃⼰快速掌握编程。
1,定义集合
电⼒系统常见的单维集合:bus,gen,slack(bus)。
多维集合:conex(bus,node) ,GBconect(bus,gen) ;
集合的多重命名: alias(bus,node)。kowtow
2,写参数
发电机参数    :Gendata(gen,*)
负荷⼤⼩参数  :busData(bus,*)
线路参数      : branch(bus,node,*)      这个地⽅注意***,详见5.4
bye for now3,设变量
发电机出⼒⼤⼩    pg(gen)
席琳迪翁演唱会
线路上的潮流⼤⼩  Pij(bus,node)
各母线的相⾓      delta(bus)

本文发布于:2023-07-02 02:53:25,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1073311.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:集合   潮流   母线   模型   线路   求解   时候   重要性
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图