TEP : 송전확대계획

참조

  • Alireza Soroudi, 슬롯 사이트의 전력 시스템 최적화 모델링, 모델TEP(Gcode9.1) 장송전운영계획 주제, 2017

카테고리 : 슬롯 사이트 PSOPT 라이브러리


메인파일 : TEP.gms

$title 전송확대 계획

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

세트
   버스 / 1*6 /
   슬랙(버스) / 1 /
   세대 / g1*g3 /
   k / k1*k4 /;

스칼라
   스베이스 / 100 /
   M / 1000 /;

별칭(버스,노드);

테이블 GenData(Gen,*) '발전소 특성'
       b 분 p 최대
   g1 20 0 400
   g2 30 0 400
   깨3 100 600;
* ----------------------------------------

GBconect(bus,Gen) '각 생성 단위의 각 버스 연결 지수' / 1.g1, 3.g2, 6.g3 /를 설정합니다.

표 BusData(bus,*) '각 버스의 수요(MW 단위)'
      PD
   1 80
   2 240
   3 40
   4 160
   5240;

테이블 분기(버스,노드,*) '네트워크 기술적 특성'
        X LIMIT 비용 통계
   1.2 0.4 100 40 1
   1.4 0.6 80 60 1
   1.5 0.2 100 20 1
   2.3 0.2 100 20 1
   2.4 0.4 100 40 1
   2.6 0.3 100 30 0
   3.5 0.2 100 20 1
   4.6 0.3 100 30 0;

Set conex(bus,node) '버스 연결 매트릭스';
conex(버스,노드)$(분기(버스,노드,'x')) = 예;
conex(버스,노드)$conex(노드,버스) = 예;

분기(버스,노드,'x')$분기(노드,버스,'x') = 분기(노드,버스,'x');
분기(버스,노드,'비용')$branch(노드,버스,'비용') = 분기(노드,버스,'비용');
분기(버스,노드,'stat')$branch(노드,버스,'stat') = 분기(노드,버스,'stat');
분기(버스,노드,'한계')$(분기(버스,노드,'한계')=0) = 분기(노드,버스,'한계');
분기(버스,노드,'bij')$conex(버스,노드) =1/분기(버스,노드,'x');
M = smax((버스,노드)$conex(버스,노드),분기(버스,노드,'bij')*3.14*2);
*****************************************************

변수 OF, Pij(버스,노드,k), Pg(Gen), delta(버스), LS(버스);
이진 변수 alpha(bus,node,k);
alpha.l(버스,노드,k) = 1;
alpha.fx(bus,node,k)$(conex(bus,node) 및 ord(k)=1 및 Branch(node,bus,'stat')) = 1;

방정식 const1A, const1B, const1C, const1D, const1E, const2, const3;
***********************************************************************

const1A(버스,노드,k)$conex(노드,버스)..
   Pij(버스,노드,k) - 분기(버스,노드,'bij')*(델타(버스) - 델타(노드)) =l= M*(1 - 알파(버스,노드,k));

const1B(버스,노드,k)$conex(노드,버스)..
   Pij(버스,노드,k) - 분기(버스,노드,'bij')*(델타(버스) - 델타(노드)) =g= -M*(1 - 알파(버스,노드,k));

const1C(버스,노드,k)$conex(노드,버스)..
   Pij(버스,노드,k) =l= alpha(버스,노드,k)*branch(버스,노드,'한계')/Sbase;

const1D(버스,노드,k)$conex(노드,버스)..
   Pij(버스,노드,k) =g=-alpha(버스,노드,k)*branch(버스,노드,'한계')/Sbase;

const1E(버스,노드,k)$conex(노드,버스)..
   alpha(버스,노드,k) =e= 알파(노드,버스,k);

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

const3..
   OF =g= 10*8760*(합계(Gen, Pg(Gen)*GenData(Gen,'b')*Sbase)+100000*합(버스,LS(버스)))
       + 1e6*sum((bus,node,k)$conex(node,bus), 0.5*branch(bus,node,'cost')*alpha(bus,node,k)$(ord(k)>1 또는 Branch(node,bus,'stat')=0));

모델 로드플로우 / 모두 /;

LS.up(버스) = BusData(버스,'pd')/Sbase;
LS.lo(버스) = 0;
Pg.lo(Gen) = GenData(Gen,'Pmin')/Sbase;
Pg.up(Gen) = GenData(Gen,'Pmax')/Sbase;

delta.up(버스) = pi/3;
delta.lo(버스) =-pi/3;
delta.fx(slack) = 0;
Pij.up(bus,node,k)$((conex(bus,node))) = 1*branch(bus,node,'Limit')/Sbase;
Pij.lo(bus,node,k)$((conex(bus,node))) =-1*branch(bus,node,'Limit')/Sbase;

옵션 optCr = 0;
밉을 사용하여 OF를 최소화하는 로드플로우를 해결합니다.