선형계획법 기반 분산에너지시스템 최적화 - 10) 출력 조정 관련 제약들
에너지 전환기 이전의 전통적 발전 포트폴리오에서도, 연료비가 저렴하고 탄소 배출이 적은 원자력’만’을 쓰지 않고 석탄/ 가스(LNG)/ 중유/ 양수발전 등을 결합해 구성했다. 이는 시간별로 전기 부하가 달라지며, 전원별로 ‘부하 변동에 대응하는 출력 조정 능력’이 다르기 때문이다.
시간대별 발전 포트폴리오. 일정 출력을 유지하는 기저설비, 특정 시간대에만 가동되는 첨두설비로 구성됨.
(출처: 전력거래소)
위 그림에서 보듯, 24시간 내내 거의 일정하게 운전하여 기저부하(base load)를 담당하는 데는 연료비가 상대적으로 저렴한 원자력, 석탄화력을 사용하고, 낮에만 발전하여 첨두부하(peak load)를 담당하는 데는 부하변동에 대한 응답성이 좋은 LNG/ 중유/ 양수발전 등을 사용한다.
이 때, 부하 변동에 대한 응답성이 좋다는 것은 아래와 같이 구체화할 수 있다.
1) 시간당 변화시킬 수 있는 출력 범위가 넓다.
2) 기동/정지 상태의 전환을 비교적 빈번하게 할 수 있다.
3) 연료비와는 별도로 시동 (정지에서 기동상태로 전환) 시 발생하는 비용이 크지 않다.
중/대형 발전설비들은 대개 이러한 ‘응답성’이 아주 좋지는 않다. 그러므로 시간별 수요/공급을 고려하는 선형계획법을 중/대형 발전설비 대상으로 적용 시, 이러한 ‘응답성’ 또한 제약조건으로 추가해야 한다. (이를테면 시/구 단위 지역난방 시스템을 대상으로 할 경우, 이러한 제약이 중요하다.)
사실 이는 중/대형 발전설비에만 국한되지 않는다. 이를테면 연료전지의 경우에도 소규모 설치가 가능한 발전 설비이지만, 부하 응답성이 기본적으로 나쁘다. 그래서 정격출력이 반강제되고, 정지 후 재기동 및 기동 유지에 장시간을 요구한다.
이 포스팅에서는 ‘응답성’을 나타내는 출력 조정 관련 제약들을 설명한다.
Ramp rate (+ duck curve)
차를 몰 때 악셀을 밟아도 1초당 늘릴 수 있는 속력에는 한계가 있다. 또한 급브레이크를 밟아도 1초당 줄일 수 있는 속력에는 한계가 있다. 무리해서 급브레이크를 계속 밟으면 차량 수명에 악영향을 끼치기도 한다.
마찬가지로 발전기의 출력 또한 갑자기 크게 늘리거나 줄이는 것에는 한계가 있고 그 한계를 무리해서 넘으면 수명에 악영향을 끼친다. 그래서, 단위 시간 동안의 출력 증가/ 감소 각각에 대해 최대값을 설정하며, 이를 ramp rate라 한다.
해당 최대값들을 정격출력 $s$로 나눈 값을 각각 $\delta_{up}$, $\delta_{down}$이라 할 때, ramp rate 제약은 아래와 같다.
$ -\delta_{down} s \leq p_{gen}[t] - p_{gen}[t-1] \leq \delta_{up} s $
즉 시간 $t-1$ 대비 시간 $t$에서 출력을 증가시키더라도 그 증가분은 $\delta_{up} s$를 초과할 수 없다. 반대로 시간 $t$에서 출력을 감소시키더라도 그 감소분은 $ \delta_{down} s$를 초과할 수 없다.
한편 계통 내에 태양광 발전의 비중이 증가하면서, ramp rate가 큰 발전 설비에 대한 수요가 증가할 전망이다.
이는 아래 그림과 같이, 태양광 비중이 증가할수록 낮 시간의 ‘태양광 발전량을 제한 순 부하 (net load)’가 작아지면서, 아침의 단위 시간 당 부하 감소량/ 오후의 단위 시간 당 부하 증가량이 커지기 때문이다.
시간에 따라 태양광 발전 비중 증가 가정 시, 태양광 발전량을 제한 순 부하의 변화. 이를 duck curve라 부른다.
(출처: https://www.synergy.net.au/Blog/2021/10/Everything-you-need-to-know-about-the-Duck-Curve)
이러한 부하의 급격한 변동은 화력발전 설비들의 급격한 출력 변동으로 이어지고, 이는 시스템 불안정성을 야기한다. 그러므로 이에 대응할 수 있도록 ramp rate가 큰 발전 설비/ 전기 저장 설비/ 잉여전력을 활용하는 섹터커플링/ 다른 시간의 전기 부하 이전 등 ‘유연성 자원’ 확보의 필요성이 증가하고 있다.
Ramp rate에 대한 제약을 응용해서, 만약 시점 $t$에서의 화력발전의 합을 $p_{\text{gen}}[t]$라 할 때, $p_{\text{gen}}[t] - p_{\text{gen}}[t-1]$ 의 상한값과 하한값을 설정할 수 있다. 이러한 제약은 화력발전의 출력 변동을 허용 선 이하로 제한할 경우의 적정 태양광 보급 안/ 유연성 자원 요구량 산출 등의 정책 연구에 활용할 수 있다.
최소 기동유지시간/ 정지유지시간
어떤 기계든, 지나치게 껐다 켰다를 빨리 반복하면 해당 기계 수명에 악영향을 미칠 것이다. 이는 발전기도 마찬가지로, 빈번하게 기동-정지 전환 시 기기 수명에 악영향을 미친다.
이 때문에, 발전기가 정지 상태에서 기동 상태로 전환하면, 일정 시간 동안 기동 상태를 유지해 줘야 한다. 또한 기동 상태에서 정지 상태로 전환하면, 일정 시간 동안 정지 상태를 유지해 줘야 한다.
특히 규모가 크고 기저설비에 가깝게 설계된 경우, 이런 최소 기동유지시간/ 정지유지시간 이 수 시간 이상일 수 있다.
어떤 발전설비가 정지상태에서 기동상태로 전환 시 ‘최소한 3시간은’ 기동상태를 유지해야 한다고 가정하자.
해당 발전설비가 시점 $t-1$에서 정지상태였다가 시점 $t$에서 기동상태로 전환된 경우, 위 조건에 의해 최소한 시점 $t+1, t+2$에서는 기동상태를 유지해야 한다. 즉 $u[t-1]=0$이면서 $u[t]=1$이라면, 반드시 $u[t+1]=u[t+2]=1$이어야 한다.
위 제약조건을 수식으로 표현하면 아래와 같다.
$ 3 (u[t]-u[t-1]) \leq u[t]+u[t+1]+u[t+2] $
$u[t]=1$이고 $u[t-1]=0$인 경우 좌변은 3이 되는데, 우변에는 이진수 3개만 있으므로 반드시 셋 다 1이 되어야 한다. 그러므로 $u[t+1]=u[t+2]=1$이어야만 식이 성립한다. 이외의 경우에는 좌변이 0 또는 -3이 되므로, $u[t+1]$과 $u[t+2]$가 어떤 값을 가져도 식이 성립한다.
이번에는 해당 발전설비가 기동상태에서 정지상태로 전환 시 ‘최소한 2시간은’ 정지상태를 유지해야 한다고 가정하자.
한편 해당 발전설비가 시점 $t-1$에서 기동상태였다가 시점 $t$에서 정지상태로 전환된 경우, 위 조건에 의해 최소한 시점 $t+1$에서는 정지상태를 유지해야 한다. 즉 $u[t-1]=1$이면서 $u[t]=0$이라면, 반드시 $u[t+1]=0$이어야 한다.
위 제약조건을 수식으로 표현하면 아래와 같다.
$ 2 (u[t-1]-u[t]) \leq 2 - (u[t]+u[t+1]) $
$u[t]=0$이고 $u[t-1]=1$인 경우 좌변은 2가 되는데, 우변에서 $u[t]=u[t+1]=0$이어야만 식이 성립한다. 이외의 경우에는 좌변이 0 또는 -2가 되므로, $u[t+1]$이 어떤 값을 가져도 식이 성립한다.
시동/ 가동중지 (start-up and shutdown)
일정 규모 이상의 발전기를 정지 상태에서 기동 상태로 전환, 즉 ‘시동’ 시, 무시할 수 없는 수준의 시동비용이 발생하기도 한다. 이는 전력 생산을 위한 연료 비용과는 별개의 비용으로 반영하여야 한다. 한편, 기동 상태에서 정지 상태로 전환, 즉 ‘가동중지’ 시에도 비용이 발생할 수 있다.
시점 $t$에서 시동을 한다는 것은 $u[t-1]=0$이면서 $u[t]=1$임을 의미한다. 한편 시점 $t$에서 가동중지를 한다는 것은 $u[t-1]=1$이면서 $u[t]=0$임을 의미한다.
이를 반영하려면, 시동 여부를 의미하는 새로운 이진수 $y[t]$와 가동중지 여부를 의미하는 새로운 이진수 $z[t]$를 도입하고, $y[t]$에 시동비용 계수를 곱한 항과 $z[t]$에 가동중지비용 계수를 곱한 항을 목적함수에 추가해야 한다.
필요한 logical constraint들은 아래와 같다.
$y[t] + z[t] \leq 1 $
$u[t] - u[t-1] = y[t] - z[t] $
부등호 제약은 $y[t]$와 $z[t]$가 동시에 1인 경우는 없지만 동시에 0인 경우는 있음 (시동 이후 계속 가동 시, 가동중지 이후 계속 정지 시) 을 표현한다.
등호 제약은 $u[t]=1$이고 $u[t-1]=0$ 인 경우 반드시 $y[t]=1$ 이 되게 하고, $u[t]=0$이고 $u[t-1]=1$ 인 경우 반드시 $z[t]=1$ 이 되게 한다. $u[t]=u[t-1]$인 경우에는 목적함수를 최소화하기 위해 $y[t]=0$, $z[t]=0$ 이 될 것이다.
01) 최소비용 시스템과 시간별 자료의 중요성
02) 배터리의 충/방전 스케줄 결정: 수식
03) 배터리의 충/방전 스케줄 결정: Python 코드 및 결과
04) 태양광과 배터리의 '용량' 결정: 목적함수 ('현재가치' 비용) 및 수식
05) 태양광과 배터리의 '용량' 결정: 코드, 결과, 투자회수기간 및 절감량 계산
06) 정수 (integer) 변수 도입으로 현실 설명력 증대
07) 공동주택의 '누진제' 전기요금 (단일계약) 수식
08) 전기 부하와 냉/난방 부하를 동시에 고려 (섹터커플링)
09) '부분'부하 성능 관련 제약들
10) 출력 조정 관련 제약들
(선형계획법 시리즈의 지식들은, 필자가 2012년부터 (주)블루이코노미전략연구원 (대표: 오시덕 박사)과 함께 선형계획법 기반으로 신재생 및 열병합 에너지 시스템 경제성분석/ 최적 에너지시스템 도출 Tool 개발/ 에너지 정책 효과 분석 관련 프로젝트들을 여러 건 수행하며 축적한 ‘기본 지식’에 해당하는 부분임을 밝힌다.)