지난 포스팅에서는 ‘주어진 용량의’ 배터리가 건물에 설치된 경우의 스케줄링을 설명했다. 그런데, 실제 상황에서는 배터리의 ‘용량’도 경제성을 고려해 결정해야 할 것이다. 그래서 이번 포스팅에서는 용량까지 결정하는 문제를 설명한다.

더불어, 건물에 배터리 뿐 아니라 태양광 패널도 설치해서 태양광+배터리 연계 시스템을 구축 시 각각의 용량을 결정하는 경우를 상정한다.

system_pvbatt 태양광과 배터리를 포함하는 건물 전기 공급 시스템 도식도.


용량 결정 문제의 목적함수: 현재가치로 환산된 총 비용

이 때, 태양광과 배터리 용량까지 고려한 ‘최소비용’은 무엇을 의미할까? 태양광과 배터리에 들어가는 비용은 대략적으로 보면 초기투자비(설비비, 설치비 등), 그리고 시간이 지남에 따른 설비의 성능 저하 (degradation) 를 완화하기 위해 매년 발생하는 유지보수비이다. 태양광과 배터리는 따로 연료를 필요로 하지는 않으므로 연료비는 없다. 한편 계통으로부터의 수전으로도 전기부하를 충족하므로, 전기요금은 매 시간별로 계속 발생한다.

그러므로, 이 문제는 ‘태양광과 배터리 시스템의 초기투자비 (패널과 배터리 뿐 아니라 이에 수반되는 인버터, 보호장치 등 포함), 시스템 수명 동안의 설비 유지보수비, 시스템 수명 동안의 전기요금’ 의 합을 최소화하는 변수 결정 문제가 된다.

예를 들어 시스템 운영 기간은 태양광의 수명 20년과 같고, 배터리의 수명은 10년이며 운영 시작 10년 후 같은 용량으로 재설치한다고 가정하자.

이 때, 대략적인 비용 구조는 아래와 같다 (실제 프로젝트에서는 더 상세할 수 있음).

0년차: 태양광 초기투자비 + 배터리 초기투자비
1년차: 1년차의 1년치 전기요금 + 태양광 유지보수비 + 배터리 유지보수비
2년차: 2년차의 1년치 전기요금 + 태양광 유지보수비 + 배터리 유지보수비
$\vdots$
10년차: 10년차의 1년치 전기요금 + 태양광 유지보수비 + 배터리 유지보수비 + 배터리 재투자비
11년차: 11년차의 1년치 전기요금 + 태양광 유지보수비 + 배터리 유지보수비
$\vdots$
20년차: 20년차의 1년치 전기요금 + 태양광 유지보수비 + 배터리 유지보수비

태양광/ 배터리 시스템 도입 시, 설비 투자비 및 유지보수비가 발생하지만 대신 전기요금이 절감된다. 즉, 전기요금 절감의 합이 태양광/ 배터리 시스템의 설비 투자비 및 유지보수비의 합보다 크다면, 태양광/ 배터리 시스템 도입은 타당성이 있다. (실제로는 투자회수기간이 짧아야 설득력이 있는데, 투자회수기간 계산에 대해서는 포스팅의 맨 마지막 문단에서 소개한다.)


그렇다면 계산을 위해, 위 비용들을 그냥 다 더하면 될까? 보통은 그렇지 않다. 시간에 따른 화폐가치 하락을 고려해야 하기 때문이다. 은행에서 이자율 3%의 예금을 든다면, 1년 후의 103만원은 현재의 100만원과 같은 가치로 볼 수 있는 것처럼 말이다. 혹시 아래 그림 같은 도식을 본 적 이 있는가?

npv Net Present Value (NPV) 도식.
(출처: https://www.investopedia.com/retirement/calculating-present-and-future-value-of-annuities/)

이런 도식을 봤다면 ‘총 현재가치’ (Net Present Value, NPV) 를 들어봤을 것이다. 그렇지 않더라도, 아마 ‘할인율을 $r$이라 할 때, $n$년 뒤의 화폐가치 기준 돈의 액수 $C$는 현재의 화폐가치로 환산하면 $c (1+r)^{-n}$이다’ 라는 내용을 어디서 비슷하게라도 들어봤을 것이다.

그러므로 $n$년차의 비용들을 현재가치(present value)로 환산하려면 $(1+r)^{-n}$을 곱해줘야 한다.


위 내용들을 반영한 목적함수 ‘현재가치로 환산한 총 비용’은 하기와 같다.

\begin{align} c_{\text{pv}}^{\text{init}} s_{\text{pv}} + c_{\text{batt}}^{\text{init}} s_{\text{batt}} \left( 1 + \frac{1}{(1+r)^{10}} \right) + \sum_{n=1}^{20} \frac{ c_{\text{pv}}^{\text{mtn}} s_{\text{pv}} + c_{\text{batt}}^{\text{mtn}} s_{\text{batt}} + \sum_{t=1}^{8760} c_{\text{grid}}[t] p_{\text{grid}}[n,t] }{(1+r)^n} \notag \end{align}

여기서 $s_{\text{pv}}$는 태양광(PhotoVoltaic)의 kW 단위 용량, $s_{\text{batt}}$는 배터리의 kWh 단위 용량, $c_{\text{pv}}^{\text{init}}$와 $c_{\text{batt}}^{\text{init}}$는 각각 태양광 1kW와 배터리 1kWh당 초기투자비 (initial), $c_{\text{pv}}^{\text{mtn}}$와 $c_{\text{batt}}^{\text{mtn}}$는 각각 태양광 1kW와 배터리 1kWh당 유지보수비 (maintenance), $p_{\text{grid}}[n,t]$는 $n$년차의 $t$번째 시간에서 전력계통으로부터 수전한 전기 양, $c_{\text{grid}}[t]$는 수전 전력의 1년 내 $t$번째 시간에서의 kWh당 전기요금이다 (일반용 건물의 전기요금이 시간대별로 달랐던 것을 기억하자).

여기서는 소개글이므로 편의상, 매년 유지보수비용은 일정하며 현재와 10년 뒤 배터리 초기투자 단가는 같다고 두었다 (이 역시 실제 프로젝트에서는 더 상세할 수 있음).


한편 위 수식에서는 건물의 전기 사용량 요금은 반영했으나, ‘기본’ 요금 (demand charge) 은 반영하지 않았다.

기본요금은 해당 건물의 수전 에너지 총량과는 무관하게, 해당 건물의 최대 수요, 즉 해당 건물이 계통에 부담시키는 ‘peak’ 부하에 대해 매겨지는 요금으로 이해할 수 있다. 지난 포스팅에서 예시로 든 일반(을) 고압A 선택II 요금제의 경우 기본요금이 8,320원/kW이다.

eleccosttable 한국전력 전기요금표 (일반용). 전력량요금 뿐 아니라 kW당 기본요금이 존재함.

해당 건물에 최대수요계가 설치되어 있지 않다면 계약전력을 기준으로 적용하고, 건물의 계약전력이 바뀔 일은 거의 없다 (건물 개축이나 대규모 전자기기 설비 도입으로 수전 설비를 증설하거나 하지 않는 한). 그러므로 계약전력 기준 적용 시에는 어떤 경우에도 기본요금이 같다. 이 경우 상수인 기본요금을 굳이 목적함수에 포함시킬 필요는 없다. (마치 $x^2$를 최소화하는 $x$값이나, $x^2+1$을 최소화하는 $x$값이나 똑같이 0인 것과 같다)

하지만 해당 건물에 최대수요계가 설치되어 있다면, 직전 12개월 중 가장 큰 최대수요전력 기반으로 기본요금을 적용한다. 매년 전기부하 사용 추이가 비슷하다고 가정하면, $n$년차의 기본요금은 대략적으로 $n$년차의 $p_{\text{grid}}[n,t]$ 중 $t$에 대한 최대값에 비례한다고 볼 수 있다. 이 경우 더 이상 기본요금은 상수가 아닌, 변수 $p_{\text{grid}}[n,t]$의 함수가 된다. 그러므로 기본요금을 목적함수에 추가해야 한다.

그러므로 kW당 기본요금을 $c_{\text{grid}}^{\text{demand}}$라 하면, 목적함수의 세 번째 항의 분자에 $ 12 c_{\text{grid}}^{\text{demand}} \text{max}_{t} p_{\text{grid}}[n,t] $ 가 추가되어야 한다. 여기서 12는 기본요금이 ‘매 월’, 즉 1년 동안 12번 부과됨을 의미한다.

(단, $\text{max} [p_{\text{grid}}[n,t]]$의 값을 최적화 계산에서 실제로 구하려면 새로운 변수 $q$를 도입한 추가적인 제약조건이 필요하며, 이는 포스팅 하단에서 따로 설명한다.)


제약조건들

위에서 목적함수가 포함하는 시점들은 연도 $n=1,2,\cdots,20$, 그리고 각 연도 내의 시간 $t=1,2,\cdots,8760$이다 ($8760 = 365 \times 24$). 그러므로, 에너지 밸런스 식도 아래와 같이 표현된다.

$ p_{\text{load}}[n,t] = p_{\text{grid}}[n,t] - p_{\text{ch}}[n,t] + p_{\text{disch}}[n,t] + s_{\text{pv}} p_{\text{pv}}[n,t]$

시간 인덱스 $t$ 뿐 아니라 연도 인덱스 $n$이 추가되었다.

여기서 맨 마지막에 추가된 항 $s_{\text{pv}} p_{\text{pv}}[n,t]$은 태양광 발전량이다. $p_{\text{pv}}[n,t]$는 `태양광 1kW’가 $n$년도의 $t$번째 시간에 발전하는 전력이고, 여기에 용량 $s_{\text{pv}}$를 곱한 것이다. 용량 $s_{\text{pv}}$는 아직 값이 결정되지 않은, 최적화 문제를 풀어 결정해야 하는 변수임에 유의한다. 용량 변수의 계수가 $p_{\text{pv}}[n,t]$이다 (시간별 태양광 발전량 자료를 input으로 받는다).

(참고: 여기서의 $p_{\text{pv}}[n,t]$는 태양으로부터의 일사량을 패널을 통해 직류 전기로 변환 후, 이를 다시 인버터를 통해 교류로 변환시켜 얻은 전기, 즉 최종적으로 부하에 전달되는 교류전력이다.)

나머지 제약조건들도 연도 인덱스 $n$을 추가하고, 배터리 용량 $S_{batt}$를 추가해 표현하면 아래와 같다.

$ e_{\text{batt}}[n,t] = e_{\text{batt}}[n,t-1] + \mu p_{\text{ch}}[n,t] - p_{\text{disch}}[n,t]/\mu \quad \forall n,t$

$ 0 \leq e_{\text{batt}}[n,t] \leq s_{\text{batt}} \quad \forall n,t$

$ 0 \leq p_{\text{ch}}[n,t] \leq \gamma s_{\text{batt}}, \quad 0 \leq p_{\text{disch}}[n,t] \leq \gamma s_{\text{batt}} \quad \forall n,t$

$ e_{\text{batt}}[1,0] = 0$

여기서 $\mu$는 배터리 충/방전 효율, $\gamma$는 c-rate이다. 배터리 내 저장된 에너지는 배터리의 용량 $ s_{\text{batt}}$을 초과할 수 없음, 그리고 충/방전 전력은 배터리 용량에 c-rate를 곱한 값을 초과할 수 없음이 수식으로 표현되었다.

(실제로는 배터리의 겉보기 용량과 SOC도 고려해야 하지만, 여기서는 논의를 간편하게 하기 위해 배터리 용량이 SOC 상/하한을 고려한 실질적 용량이라고 가정한다.)


그리고, 위에서 기본요금이 $\text{max}_{t} P_{\text{grid}}[n,t]$에 비례하는데 이는 새로운 변수 $q[n]$을 도입해서 추가제약을 세워 구해야 한다고 했었다. 해당 제약은 아래와 같다.

$ p_{\text{grid}}[n,t] \leq q[n] \quad \forall n$

위 식에 의해 $q[n]$는 $ p_{\text{grid}}[n,t]$ 중 가장 큰 값보다도 크거나 같다. $q[n]$에 양의 계수를 곱한 값이 목적함수에 추가되면, $q[n]$는 가능한 한 최소화된다 (그래야 목적함수가 최소화되므로). 결과적으로 $q[n]$는 $ p_{\text{grid}}[n,t]$의 최대값과 같게 된다.

문제를 더 현실적으로 만들기 위해서는 ‘태양광 설치가 가능한 면적 제약’, 즉 어떤 상수 $A$에 대해 $s_{\text{pv}} \leq A$도 고려할 수 있다. 지붕 등 설치 가능 면적이 크지 않다면 이는 중요한 제약이다. 또한 태양광 잉여분을 역송할 경우의 상계거래 등도 제약조건으로 둘 수 있다.

다만 이 포스팅의 예제는 선형계획 계산 자체를 설명하는 것이 목적이므로, 이러한 심화적 조건들은 적용하지 않는다.


다음 포스팅에서, 용량 결정 문제의 코드 및 결과를 살펴본다.


(선형계획법 시리즈의 지식들은, 필자가 2012년부터 (주)블루이코노미전략연구원 (대표: 오시덕 박사)과 함께 선형계획법 기반으로 신재생 및 열병합 에너지 시스템 경제성분석/ 최적 에너지시스템 도출 Tool 개발/ 에너지 정책 효과 분석 관련 프로젝트들을 여러 건 수행하며 축적한 ‘기본 지식’에 해당하는 부분임을 밝힌다.)