OPF5bus : 5버스 시스템을 위한 최적의 전력 흐름

참조

  • Alireza Soroudi, 메가 슬롯의 전력 시스템 최적화 모델링, 모델OPF5버스(Gcode6.3) 장다주기 최적 전력 흐름, 2017

카테고리 : 메가 슬롯 PSOPT 라이브러리


메인파일 : OPF5bus.gms

$title 5버스 시스템을 위한 최적의 전력 흐름

$onText
자세한 내용은 다음 책의 6장(Gcode6.3)을 참조하세요.
소루디, 알리레자. 메가 슬롯의 전력 시스템 최적화 모델링. 스프링거, 2017.
--------------------------------------------------------------------------------
모델 유형: LP
--------------------------------------------------------------------------------
작성자:
알리레자 소루디 박사
IEEE 수석 회원
이메일: alireza.soroudi@gmail.com
우리는 개발된 메가 슬롯 코드를 사용하여 파생된 출판물을 요청합니다.
인용함으로써 그 사실을 명시적으로 인정한다.
소루디, 알리레자. 메가 슬롯의 전력 시스템 최적화 모델링. 스프링거, 2017.
DOI: doi.org/10.1007/978-3-319-62350-4
$offText

세트
   버스 / 1*5 /
   슬랙(버스) / 1 /
   세대 / g1*g5 /;

스칼라 Sbase / 100 /;

별칭(버스,노드);

테이블 GenData(Gen,*) '발전소 특성'
       b 분 p 최대
   g1 14 0 40
   g2 15 0 170
   g3 30 0 520
   g4 40 0 200
   g5 10 0 600 ;
* ----------------------------------------

GBconect(bus,Gen) '각 생성 단위의 각 버스에 대한 연결 지수' 설정
/
   1.g1
   1.g2
   3.g3
   4.g4
   5.g5
/;
****************************************************

표 BusData(bus,*) '각 버스의 수요(MW 단위)'
      PD
   2 300
   3 300
   4400;
****************************************************

conex '버스 연결 매트릭스' 설정
/
   1.2
   2.3
   3.4
   4.1
   4.5
   5.1
/;
* ----------------------------------------
conex(버스,노드)$(conex(노드,버스)) = 1;

테이블 분기(버스,노드,*) '네트워크 기술적 특성'
        x 한도
   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;

분기(버스,노드,'x')$(분기(버스,노드,'x')=0) = 분기(노드,버스,'x');
분기(버스,노드,'한계')$(분기(버스,노드,'한계')=0) = 분기(노드,버스,'한계');
분기(버스,노드,'bij')$conex(버스,노드) = 1/분기(버스,노드,'x');
*****************************************************

변수 OF, Pij(버스,노드), Pg(Gen), delta(버스);
방정식 const1, const2, const3;
*********************************************

const1(버스,노드)$(conex(버스,노드))..
   Pij(버스,노드) =e= 분기(버스,노드,'bij')*(델타(버스) - 델타(노드));

const2(버스)..
   sum(Gen$GBconect(버스,Gen), Pg(Gen)) - BusData(버스,'pd')/Sbase =e= sum(node$conex(노드,버스), Pij(버스,노드));

const3..
   OF =g= sum(Gen, Pg(Gen)*GenData(Gen,'b')*Sbase);

모델 로드플로우 / const1, const2, const3 /;

Pg.lo(Gen) = GenData(Gen,'Pmin')/Sbase;
Pg.up(Gen) = GenData(Gen,'Pmax')/Sbase;
delta.up(버스) = 파이;
delta.lo(버스) =-pi;
delta.fx(slack) = 0;
Pij.up(버스,노드)$((conex(버스,노드)))= 1*branch(버스,노드,'한계')/Sbase;
Pij.lo(버스,노드)$((conex(버스,노드)))=-1*branch(버스,노드,'한계')/Sbase;

lp를 사용하여 OF를 최소화하는 로드플로우를 해결합니다.

매개변수 보고서(버스,*), 혼잡비용;
보고서(버스,'Gen(MW)') = sum(Gen$GBconect(버스,Gen), Pg.l(Gen))*sbase;
보고서(버스,'각도') = delta.l(버스);
보고서(버스,'로드(MW)') = BusData(버스,'pd');
보고서(버스,'LMP($/MWh)') = const2.m(버스)/sbase ;
혼잡 비용 = sum((버스,노드), Pij.l(버스,노드)*(-const2.m(버스) + const2.m(노드)))/2;
디스플레이 보고서, Pij.l, Congestioncost;