설명
우리는 에너지 분야에서 발생하는 포트폴리오 최적화 문제에 대해 논의합니다. 시장. 에너지 분배 공공 서비스는 얼마나 많은 에너지를 분배할지 결정해야 합니다. 요청된 에너지 수요 중 자체 전력으로 생산되어야 합니다. 식물을 현장에서 구입해야 하는 보충량 시장 및 계약에 따른 부하로부터. 이 문제는 혼합 정수 선형 계획법으로 공식화됩니다. 문제를 해결하고 무료 슬롯에 구현했습니다. 공식이 실제 데이터에 적용됩니다. 독일의 전기 유통업체입니다. 대부분의 방정식에는 공식의 참조 번호가 포함되어 있습니다. 출판.
대형 모델 유형 :MIP
카테고리 : 무료 슬롯 모델 라이브러리
메인 파일 : 무료 슬롯gms
$title 전기 유틸리티를 위한 포트폴리오 최적화(POUTIL,SEQ=342)
$onText
에너지 분야에서 발생하는 포트폴리오 최적화 문제에 대해 논의합니다.
시장. 에너지 분배 공공 서비스는 얼마나 많은 에너지를 분배할지 결정해야 합니다.
요청된 에너지 수요 중 자체 전력으로 생산되어야 합니다.
식물을 현장에서 구입해야 하는 보충량
시장 및 계약에 따른 부하로부터.
이 문제는 혼합 정수 선형 계획법으로 공식화됩니다.
문제를 해결하고 무료 슬롯에 구현했습니다. 공식이 실제 데이터에 적용됩니다.
독일의 전기 유통업체입니다.
대부분의 방정식에는 공식의 참조 번호가 포함되어 있습니다.
출판.
Rebennack, S, Kallrath, J 및 Pardalos, P M, 에너지 포트폴리오
전기 시설 최적화: 독일 사례 연구. 에서
Bjørndal, E, Bjørndal, M, Pardalos, P.M. 및 Rönnqvist, M Eds,.
스프링거, pp. 221-246, 2010.
키워드: 혼합 정수 선형 계획법, 에너지 경제학, 포트폴리오 최적화,
단위 투입, 경제적 파견, 발전소 제어, 하루 전 시장
$offText
$title 에너지
t '시간 조각(1/4시간)' / t1*t96 /을 설정합니다.
매개변수
PowerForecast(t) '전력예측'
/ t1 287, t2 275, t3 262, t4 250, t5 255, t6 260, t7 265,
8월 270일, 9월 267일, 10월 265일, 11월 262일, 12일 260일, 13일 262일, 14일 265일,
t15 267, t16 270, t17 277, t18 285, t19 292, t20 300, t21 310,
t22 320, t23 330, t24 340, t25 357, t26 375, t27 392, t28 410,
t29 405, t30 400, t31 395, t32 390, t33 400, t34 410, t35 420,
t36 430, t37 428, t38 427, t39 426, t40 425, t41 432, t42 440,
t43 447, t44 455, t45 458, t46 462, t47 466, t48 470, t49 466,
t50 462, t51 458, t52 455, t53 446, t54 437, t55 428, t56 420,
t57 416, t58 412, t59 408, t60 405, t61 396, t62 387, t63 378,
t64 370, t65 375, t66 380, t67 385, t68 390, t69 383, t70 377,
t71 371, t72 365, t73 368, t74 372, t75 376, t76 380, t77 386,
t78 392, t79 398, t80 405, t81 408, t82 412, t83 416, t84 420,
t85 413, t86 407, t87 401, t88 395, t89 386, t90 377, t91 368,
t92 360, t93 345, t94 330, t95 315, t96 300 /;
$title 발전소(PP)
스칼라
cPPvar '발전소의 변동비용 [유로/MWh]' / 25.0 /
pPPMax '발전소의 최대 용량[MW]' / 300.0 /;
세트
m '발전소의 단계' / m1*m8 /
iS '상시 PP 동작을 위한 간격' / iS0*iS8 /
iI '유휴 시간 길이' / iI0*iI16 /;
$title 현물 시장(SM)
스칼라
cBL '1기저전력계약비용 [유로/MWh]' / 32.0 /
cPL '1회 최대 부하 계약 비용 [유로/MWh]' / 41.0 /;
매개변수 IPL(t) '최대 부하 계약에 대한 표시기 함수';
IPL(t) = ord(t) >= 33 및 ord(t) <= 80;
$title 계약에 따른 로드(LFC)
Scalar pLFCref 'LFC에 대한 전력 기준 레벨' / 400 /;
Set b '지역 가격 지지점' / b1*b3 /;
매개변수
eLFCbY(b) '지점 b에서의 에너지 양' / b1 54750, b2 182500, b3 9000000 /
cLFCvar(b) '세그먼트 b의 비에너지 가격' / b1 80.0, b2 65.0, b3 52.0 /
eLFCb(b) 'LFC에 대한 에너지량의 일일 경계'
cLFCs(b) '세그먼트 b까지 LFC에 대한 누적 비용';
* 구역의 일일 에너지량 경계를 계산합니다.
eLFCb(b) = eLFCbY(b)/365;
* 누적 비용을 계산
cLFCs("b1") = 0;
cLFCs("b2") = cLFCvar("b1")*eLFCb("b1");
cLFC(b)$(ord(b)>2) = cLFC(b-1) + cLFCvar(b-1)*(eLFCb(b-1) - eLFCb(b-2));
변수
c '총 비용'
cPP 'PP 사용 비용'
pPP(t) '발전소에서 전력을 회수함'
delta(m,t) 'PP가 시간 t에 단계 m에 있는지 여부를 나타냅니다.'
chiS(t) 'PP 단계 변경이 있는지 표시'
chiI(t) 'PP가 유휴 단계를 떠났는지 여부를 나타냅니다'
cSM 'SM의 에너지 비용'
pSM(t) '현물시장의 힘'
alpha '기본 부하 계약 수량'
베타 '최대 부하 계약 수량'
cLFC '에너지율인 LFC의 비용'
eLFCtot 'LFC의 총 에너지량'
eLFC(b) '세그먼트 b의 LFC 에너지'
pLFC(t) 'LFC로부터의 전력'
mu(b) '세그먼트 b에 대한 지표(구역 가격)';
양성 변수 cPP, pPP, chiS, chiI, cSM, pSM, cLFC, eLFCtot, eLFCs, pLFC;
이진 변수 델타, 뮤;
정수 변수 알파, 베타;
alpha.up = smax(t, PowerForecast(t));
beta.up = alpha.up;
pLFC.up(t) = pLFCref;
방정식
obj '목적 함수'
수요(t) '에너지 예측에 대한 수요 제약'
PPcost '발전소 비용'
PPpower(t) 't 시점의 발전소 전력'
PPstage(t) '언제든지 발전소의 정확히 한 단계'
PPchiS1(t,m) 'chi 및 델타 변수 관련 첫 번째 제약조건'
PPchiS2(t,m) 'chi 및 델타 변수 관련 두 번째 제약조건'
PPstageChange(t) '단계 변경 횟수 제한'
PPstarted(t) 'chiZ 및 chi 변수 연결'
PPidleTime(t) '플랜트의 유휴 시간 제어'
SMcost '현물시장과 관련된 비용'
에스엠파워 '현물시장의 힘'
LFCcost 'LFC에 대한 비용'
LFCenergy 'LFC에서 나오는 총 에너지'
LFCmu '정확히 하나의 가격대 b'
LFCenergyS 'mu 변수를 총 에너지와 연결'
LFCemuo '구간 b1의 누적 에너지량'
LFCemug(b) '다른 모든 세그먼트에 대해 누적된 에너지 양';
* 목적 함수: 총 비용; 방정식. (6)
obj.. c =e= cPP + cSM + cLFC;
* 각 기간의 전력 수요를 정확하게 충족시킵니다. 방정식. (23)
수요(t).. pPP(t) + pSM(t) + pLFC(t) =e= PowerForecast(t);
* (고정 비용 +) 가변 비용 * 생산된 에너지량; 방정식. (7) & (8)
PPcost.. cPP =e= cPPVar*sum(t, 0.25*pPP(t));
* 발전소에서 생산되는 전력; 방정식. (26)
PPpower(t).. pPP(t) =e= pPPMax*sum(m$(ord(m) > 1), 0.1*(ord(m) + 2)*delta(m,t));
* 발전소는 언제든지 정확히 한 단계에 있습니다. 방정식. (25)
PPstage(t).. sum(m, delta(m,t)) =e= 1;
* 다음 제약 조건은 발전소가 있는 최소 기간을 모델로 합니다.
* 동일한 상태 및 최소 유휴 시간의 제약
* 상태 변경이 언제 발생하는지 알아보려면 변수 'chiS'가 필요합니다.
* 방정식. (27)
PPchiS1(t,m)$(ord(t)>1).. chiS(t) =g= delta(m,t) - delta(m,t-1);
* 'chiS' 변수에 대한 두 번째 제약; 방정식. (28)
PPchiS2(t,m)$(ord(t)>1).. chiS(t) =g= delta(m,t-1) - delta(m,t);
* 최소 변경 기간을 제어합니다. 방정식. (29)
PPstageChange(t)$(ord(t) < 카드(t) - 카드(iS) + 2).. sum(iS, chiS(t + ord(iS))) =l= 1;
* 플랜트가 유휴 상태를 벗어났는지 여부를 나타냅니다. 방정식. (30)
PPstarted(t).. chiI(t) =g= delta("m1",t-1) - delta("m1",t);
* 최소 유휴 기간을 제어합니다.
* 최소한 Nk2 기간 이상이어야 합니다. 방정식. (31)
PPidleTime(t)$(ord(t) < 카드(t) - 카드(iI) + 2).. sum(iI, chiI(t + ord(iI))) =l= 1;
* 현물 시장 비용; 방정식. (12)
* 기본 부하(알파) 및 최대 부하(베타) 계약의 일관성
SMcost.. cSM =e= 24*cBL*알파 + 12*cPL*베타;
* 현물 시장 지배력 기여; 방정식. (9)
SMpower(t).. pSM(t) =e= 알파 + IPL(t)*베타;
* LFC 비용은 에너지 요율에 따라 결정됩니다. 방정식. (14) & (21)
LFC비용.. cLFC =e= sum(b, cLFCs(b)*mu(b) + cLFCvar(b)*eLFCs(b));
* LFC의 총 에너지; 방정식. (16)
* eLFC(t) 변수를 eLFCtot와 연결
LFCenergy.. eLFCtot =e= sum(t, 0.25*pLFC(t));
* 표시 변수 'mu':
* 우리는 정확히 하나의 가격 세그먼트 b에 속합니다. 방정식. (18)
LFCmu..sum(b, mu(b)) =e= 1;
* 'mu' 변수를 총 에너지량과 연결합니다. 방정식. (19)
LFCenergyS.. eLFCtot =e= sum(b$(ord(b) > 1), eLFCb(b-1)*mu(b)) + sum(b, eLFCs(b));
* 세그먼트 "b1"의 누적 에너지량; 방정식. (20)
LFCemuo.. eLFCs("b1") =l= eLFCb("b1")*mu("b1");
* 다른 모든 세그먼트에 대한 누적 에너지 양(이후 "b1"); 방정식. (20)
LFCemug(b)$(ord(b) > 1).. eLFCs(b) =l= (eLFCb(b) - eLFCb(b-1))*mu(b);
모델 에너지 / 모두 /;
* MIP의 상대적 종료 기준(relative gap)
옵션 optCr = 0.000001;
c를 최소화하는 MIP를 사용하여 에너지를 해결합니다.