참조
카테고리 : 슬롯 사이트 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를 최소화하는 로드플로우를 해결합니다.