김일주
(Il-Ju Kim)
1
이송근
(Song-Keun Lee)
†iD
-
(
Dept. of Electrical and Electronic Engineering, JeonJu Univerity, Korea. , E-mail
: kimil-ju@hanmail.net
)
Copyright © The Korean Institute of Electrical Engineers(KIEE)
Key words
Python, CNN(Convolutional Neural Network), Deep Learning Technique, Solar power generation
1. 서론
최근 화석 연료자원의 고갈과 이산화탄소 배출 규제로 태양광 발전에 대한 관심과 수요가 증가하고 있다. 태양광 발전은 소규모 발전에 적용하기 시작하여,
최근에는 대규모 발전소를 구축하여 전력회사에 판매하거나 도시에 전력수요를 공급하고 있다. 또한 섬이나 내륙 오지 등 전기 공급이 어려운 곳에서는 태양광,
풍력, 조력 발전 등 신재생 에너지를 통해 에너지 자립을 위한 마이크로그리드(Microgrid)에 대한 설비 구축과 연구가 진행 중에 있다.
태양광 발전은 공해가 없고, 유지보수가 용이하며, 수명이 길다는 장점이 있으나, 전력생산량이 기상에 의존하고, 설치장소가 한정적이며, 초기투자비와
발전단가가 높다는 단점이 있다. 특히, 기상상태에 의존하기 때문에 발전량이 매우 간헐적이며 발전량 조정이 어려워 사전에 발전계획을 수립하기 어렵다.
따라서 태양광발전의 발전량 불확실성을 줄이고 태양광 발전의 경제성을 향상시키기 위하여 높은 정확도의 태양광발전량 예측이 필수적이다. 기존의 태양광발전예측은
ELM(Extreme Learning Machine), SVR(Support Vector Regression), 신경망 등을 이용하여 발전량 예측을
하는 연구가 진행되었다. 그러나 본 논문에서는 2011년부터 예측일 전까지의 기상위성 자료를 이용하여 태양광발전의 일사량을 예측하였으며, 예측 방법은
딥러닝 알고리즘의 하나인 CNN(Convolutional Neural Network)을 이용하여 일사량 예측을 하였다. 그리고 2018년 기상위성
자료를 사용하여 제안한 방법의 타당성 검증을 하였다.
예측 프로그램으로는 딥러닝에 특화되어있는 Python을 이용하여 프로그램 하였다.
2. 본론
2.1 기존 연구방법
태양광발전의 일사량예측은 태양광발전의 경제적인 발전설비 운영을 위해 정확한 예측이 필요하다. 오늘날 정확한 예측을 위하여 많은 연구가 진행되고 있다.
기존의 연구방법으로는 일반적인 기상 데이터를 이용하여 예측하였다. 기상 상태와의 상관관계에 따른 발전이 결정되기 때문이다. 기상 정보는 기온변화 및
습도, 장마, 태풍, 폭우, 우박, 이상기온, 구름량 등의 정보를 이용하여 예측하는데 사용되고 있다.
본 논문에서는 이러한 텍스트 자료가 아닌 위성이미지 자료인 표면도달일사량을 이용하여 예측에 사용하였다. 기존 연구의 일사량 예측은 구름과 풍량, 기우
등을 이용하여 일사량을 도출하였다. 그리고 도출한 일사량을 이용하여 태양광발전예측을 하였다. 그러나 이러한 방법은 방대한 데이터를 이용하여 도출한
대기의 변화에 따라 발전값이 정확하지 않다. 그리하여 본 논문에서는 이러한 이상기온으로 불규칙한 기온변화를 고려하여 기상변화가 한눈에 보이는 기상위성
자료를 이용하였다. 또한 기존의 예측방법으로는 ELM (Extreme Learning Machine), SVR (Support Vector Regression),
신경망 등을 사용하여 예측하였다. 그러나 이러한 예측방법은 방대한 데이터로 예측하기 힘들기 때문에 대기의 변화를 자기학습 및 인지하는 방법을 사용하였다.(1)
2.2 예측요인 분석
본 논문에서 태양광발전 일사량 예측을 위하여 실시간으로 국가기상위성센터에서 제공하는 기상위성자료를 이용하였다. 오늘날 기술의 발달로 거의 정확한 기상정보를
알 수 있다. 국가기상위성센터의 위성자료는 2011년부터 현재까지의 15분 주기로 제공하며, 위성영상은 적외선영상, 수증기영상, 청천복사휘도, 가시영상,
상층증기영상, 안개영상, 표면도달일사량 등 이 있다. 일사량에 영향을 주는 대표적인 요인인 구름과 안개를 알 수 있는 적외선영상과 가시영상, 안개영상을
표면도달일사량과 비교 분석하였다. 적외선영상은 말 그대로 적외선을 이용하여 지구를 촬영한 영상이다. 적외선 영상은 구름의 온도가 높으면 어둡게 보이고,
온도가 낮으면 밝게 보인다. 따라서 고도가 높은 구름은 밝게 보이고, 낮은 구름은 어둡게 보인다. 다음으로 가시영상은 구름과 지표면에서 반사되는 태양광의
세기를 나타내며, 반사광이 강할수록 밝게 보인다. 따라서 구름에 의한 태양광의 반사강도는 구름의 두께에 따라 변한다. 그러므로 구름의 두께를 알 수
있다. 그림 1의 a는 적외선영상이며, b는 가시영상 이다. 다음으로 안개영상은 말 그대로 안개가 있는 곳을 표시해 주는 영상이다. 안개영상은 그림 1의 c와 같다.(2)
다음으로 본 논문에서 사용한 표면전달일사량이다.
표면전달일사량은 태양광 에너지가 표면까지 전달되는 일사량을 색으로 표현한 이미지이다. 그림 1의 d에서 보는 것과 같이 표면전달일사량은 구름의 위치와 두께에 따라 일사량이 현저히 적은 것을 볼 수 있으며, 적외선과 가시영상에서 확인 할 수
없었던 안개위치 또한 표면전달일사량 이미지에서 확인할 수 있었다. 그림 1의 c와 d를 비교해 보면 안개가 있는 부분이 지구 표면까지의 일사량이 미지는 것을 확인 할 수 있었다.
그림. 1. 내장된 자체 테스트 구조
Fig. 1. Weather satellite analysis data
2.3 기상청 일사량과 표면전달일사량 분석
본 논문에서는 국가기상위성센터에서 제공하는 표면도달일사량과 기상청에서 제공하는 일사량이 동일한지를 분석하여 일사량을 도출하였다. 그림 2는 기상청 데이터와 국가기상위성센터 데이터의 전주지역 일사량을 비교 분석한 자료이다.
그림. 2. 일사량 비교 데이터
Fig. 2. Insolation Comparison Data
그림 2와 같이 표면도달일사량과 기상청에서 제공하는 일사량이 동일함을 볼 수 있다. 2015년 05월 11일 07시 전주지역 기상청 데이터는 125$W/m^{2}$
이며, 13시 데이터는 425$W/m^{2}$이다. 그리고 국가기상위성센터에서 제공하는 2015년 05월 11일 07시 전주지역 표면도달일사량 칼라를
비교 분석한 결과 120~130으로 거의 비슷한 것을 볼 수 있었다. 또한 13시 데이터도 420~430으로 거의 비슷하였다. 이와 같이 기상청 데이터와
국가기상위성센터 데이터가 동일하다고 확인하여 본 논문에서는 표면도달일사량을 사용하였다.(3)
2.4 Deep Learning
Deep Learning은 수많은 데이터 속에서 패턴을 발견하며 객체를 분별한다. 처음에는 단순하게 선이나 색만 구별한다면, 나중에는 모양을 인식하고
다음엔 추상적인 레벨까지 구분할 수 있게끔 학습시키는 것이다. 패턴을 발견해나가는 과정도 몇 가지로 나뉜다.
1. 지도 학습 (Supervised Learning)
2. 비지도 학습 (Unsupervised Learning)
3. 강화 학습 (Reinforcement Learning)
지도학습은 어린아이에게 어떤 이미지를 보여주고 차근차근 교육하는 방식이라고 할 수 있다. 처음에는 미숙할 수 있지만 계속 반복하여 학습하면 정확하게
인지 할 수 있는 학습 방법이다. 그러나 지도학습은 학습 데이터가 적으면 오차율이 커진다는 단점이 있다. 다음으로 비지도 학습이다. 비지도학습은 지도학습과
다르게 컴퓨터가 스스로 학습해 나가는 방법이다. 그러나 고도의 연산 능력이 요구돼 웬만한 컴퓨터 능력으로는 시도하기 쉽지 않다. 마지막으로 강화 학습이다.
강화학습은 방대한 데이터를 기반으로 스스로 교육한 후 스스로 테스트하여 더욱 정확도를 높여가는 방법이다. 이 방법은 알파고에 적용된 방법이다. 어떠한
방법으로 프로그램을 하더라도 딥러닝은 데이터가 풍부해야 높은 확률로 예측할 수 있다.(4)
2.5 CNN 알고리즘
본 논문에서 태양광발전을 예측하기 위해서는 딥러닝 방법 중 하나인 CNN 방법을 사용하다. CNN은 말 그대로 ‘Convolution’이라는 작업이
들어가는 NN을 의미한다. 즉, image 전체를 보는 것이 아니라 부분을 보는 것이 핵심이다. 이 ‘부분’에 해당하는 것을 filter라고 한다.
filter는 image의 사이즈를 7x7이라고 가정하며, 여기서 filter의 size를 3x3이라고, 총 9개의 parameter가 생성된다.
이를 x라고 하면 weight W에 대하여 Wx+b나 ReLU(Wx+b)와 같은 activation을 거쳐 하나의 실수로 출력할 수 있다. 그럼으로
각 스텝마다 1개의 value를 얻기 때문에 과정을 반복하면 총 5x5의 output을 얻게 된다. 실제로 output의 size는 식(3)과 같은 공식으로 얻을 수 있겠다.
이렇게 나온 output을 Convolution layer라고 부릅니다. Con- volution layer 사이즈 k는 일반적으로 N보다 작거나
같다(stride≥1, F≥1).
즉, CNN은 하위 계층부터 상위 계층을 지나면서 이미지가 가지는 특징을 추출한다. 하위 계층는 Convolution과 Pooling을 통해 Feature
map을 구성한다. Convolution 계층에서는 이전 계층의 출력 값을 입력으로 받아 가중치 연산과정을 수행하고 Pooling 계층에서는 블록
내의 특징 중 최대를 취함으로써 위치에 상관없이 특징이 되는 값은 보존하고 특징 맵의 크기를 줄여 연산을 빠르게 해주는 역할을 한다. 상위 계층에서는
이전 계층에서 추출된 데이터를 가지고 다시 특징을 사용하여 최종 출력 값을 도출하게 된다. 그림 3는 CNN 모델의 연산 과정이다.(4)(5)
그림. 3. CNN 모델 연산 과정
Fig. 3. CNN Model Operation Process
2.6 부하예측 알고리즘
그림 4는 본 논문에서 제시한 기상위성을 이용한 태양광발전 일사량예측의 알고리즘이다. 일사량 예측은 예측일전 까지의 표면도달일사량을 불러오고, 불러온 이미지를
Convoution한 다음 한번의 Max Pooling한다. 이 작업을 두 번 더 거처 이미지의 특징을 표출한 다음 Neural Network을 통해
특징을 분석 및 학습한다. 학습 방법은 지도학습을 하였으며, 학습하여 나온 결과로부터 함수를 추론한다. 이 때 비용 함수는 주어진 데이터가 추론한
함수와 얼마나 어긋나느냐에 따라 달려 있고, 문제에 대한 사전 지식을 암시적으로 포함하고 있다. 이러한 과정을 거처 얻어진 답의 품질에 대해 연속적으로
피드백을 주어 일사량의 변화를 추론하게 된다.
그림. 4. 예측 알고리즘
Fig. 4. Forecasting algorithm
3. 예측 프로그램
본 논문에서 사용한 프로그램은 Python을 이용하며, 딥러닝의 학습 처리 라이브러리인 TensorFlow를 이용하여 태양광발전 예측 프로그램 만들었다.
Python은 기존의 초보자도 제작이 편리하며, TensorFlow은 신경망 구성을 최적화하는 처리를 자동적으로 수행하는 기능을 제공한다.
그림. 5. TensorFlow와 Python을 이용한 예측 프로그램
Fig. 5. Prediction program using TensorFlow and Python
4. 예측사례
본 논문에서는 국가기상위성센터에서 제공하는 표면전달일사량과 CNN 알고리즘을 이용하여 태양광발전에 영향을 주는 일사량을 예측하였다. 본 논문에서 심층신경망의
과적합(Overfitting) 문제를 방지하기 위해 Dropout 기법을 사용하였고, 최적화기는 AdamOptimizer를 사용하였다. 활성화 함수는
Sigmoid를 이용하였고, Learning rate는 0.001로 설정하였다. 또한 프로그램 실행에 따른 오차감소율과 모델의 예측 성능을 출력해
나타내었다. 본 논문에서 제작한 프로그램을 이용하여 예측한 결과 그림 6과 같이 최소 오차율은 0.56%이 나왔으며, 98% 적중률을 보였다.
그림. 6. 예측 오차율
Fig. 6. Forecasting error rate
그림 7은 2018년 1월 24일 13시30분의 기상위성과 예측한 위성이미지의 비교 자료이다. 예측한 이미지를 보면 전라도 지역의 일사량이 조금 다른 것을
확인할 수 있다. 전라도 지역의 일사량은 약 400$W/m^{2}$이 나온다.
그림. 7. 예측 이미지
Fig. 7. Forecasting image
5. 결 론
본 논문에서는 기상위성 데이터를 분석하였으며, 적외선위성 데이터를 사용하여 구름의 이동경로를 예측하였다. 또한 적외선위성 데이터를 이용하여 구름의
모양 및 일사량을 예측할 수 있다. 본 연구에서 사용된 데이터는 2011년 ~ 2017년까지의 위성데이터를 사용하였다. 태양광발전 예측 방법으로는
딥러닝 방법의 하나인 CNN 방법을 이용하여 예측하였다. 프로그램은 Python을 이용하여 프로그램 하였으며, 딥러닝의 학습 처리 라이브러리인 TensorFlow를
이용하여 프로그램을 만들었다.
본 논문에서 제시한 방법을 이용하여 구름의 이동경로를 예측하여 일사량을 예측한 결과 예측 오차율은 0.58%이며, 적중률은 98% 나오는 것을 볼
수 있었다.
향후 본 연구에서는 기상위성을 이용하여 미세먼지와 풍속, 풍량 패턴을 만들어 태양광발전 예측하는 것이 향후 계획이다.
Acknowledgements
본 연구는 2018년도 전력연구원의 지원에 의하여 이루어진 연구로서, 관계부처에 감사 드립니다.
References
Ji Eun Yu, Hwan Cheol Kang, Hye Rim Hyun, Na Yeon Kim, Seung Yun Lee, Young Seok Ji,
Han Sam Oh, Yoon Seok Kang, Sang Hun Lee, Dec. 2017, Korea Infomation Science Society,
pp. 1974-1976
Kyung Soo Han, Dec. 2012, Insolation Algorithm Technology analysis report, National
Meteorological Satellite Center
Yu Jeong Choe, Chang Sun Baek, Jae Hong Yom, Apr. 2017, Machine Learning Based Accuracy
Improvement of Land Surface Temperature from Satellite Imagery -With Application to
Cloud Cover Enhancement-, Korea Society of Surveying, pp. 280-286
Sun Ho Lee, Sang Hyeon Kim, Han Lim Choi, Nov. 2017, Vision- Based Multi-Object Detection
and Localization Using CNN, The Korean Society for Aeronautical & Space Sciences,
pp. 326-328
Hyun Jin Lee, August. 2016, Use of the Moving Average of the Current Weather Data
for the Solar Power Generation Amount Prediction, Journal of Korea Multimedia Society,
Vol. 19, No. 8
저자소개
received the B.Eng. and M.Eng. degree from JeonJu University, Jeonju, South Korea,
in 2008 and 2011, Ph.D. course from Jeonju University. He worked as a Power Engineering
and Programming Lecturer at the National University of Jeonju (2012–2013). currently
working as a researcher at Jeonju University. His research interests include Electric
Load Forecasting and Simulator
received the B.Eng. degree from University SaoPaulo, SaoPaulo, Brazil, in 1988 and
the M.Eng. and Ph.D. degrees from Seoul University in 1991 and 1997, respectively.
He is currently Jeonju University Professor of Elec- trical and Electronics Engineering.
His research interests include time series modeling, Electric Load Forecasting and
Simulator.