• 대한전기학회
Mobile QR Code QR CODE : The Transactions of the Korean Institute of Electrical Engineers
  • COPE
  • kcse
  • 한국과학기술단체총연합회
  • 한국학술지인용색인
  • Scopus
  • crossref
  • orcid

  1. (Dept. of Electrical and Robot Engineering, Soonchunhyang University, Korea.)
  2. (Dept. of Electronics and Information Engineering, Soonchunhyang University, Korea.)



State estimation, Parallel computation, OpenMP, Bad data

1. 서 론

전력계통의 효율적인 운용 및 감시, 제어를 위해 SCADA (supervisory control and data acquisition)와 EMS(energy manage- ment system)가 사용되고 있다. EMS는 전력조류(power flow) 계산, 고장해석(fault analysis), 경제 급전(economic dispatch), 급전 훈련 시뮬레이터(dispatcher training simulator), 상태 추정(state estimation) 등의 주요 기능으로 이루어져 있으며, 이 기능을 사용하기 위해서는 빠르고 정확하게 계통의 데이터를 확보하는 것이 중요하다(1). 상태 추정은 EMS로부터 약 2~4초 주기로 얻어지는 측정데이터를 이용하여 전체 계통 데이터를 확보하는 과정이다. 전력계통 해석 및 제어를 위해 계통의 실시간 데이터베이스를 제공하고, 관제센터에서 계통 운영자가 계통 운용을 위해 필수 기능으로 사용한다(2,3). 따라서 효율적이고 안정적인 계통 운용을 위해 상태 추정의 연산 속도향상은 중요하다.

병렬화 과정은 연산 속도를 향상시키는 방법 중 하나이다. 병렬화 기법에는 가속기 프로그래밍 모델, 메시지 패싱(mes- sage passing) 모델, 공유 메모리 프로그래밍 모델 등이 존재한다. 그중에서도 공유 메모리 프로그래밍 모델은 CPU 연산만을 사용하기 때문에 나머지 모델에 비해 메모리 간 데이터 전송 및 교환 속도가 빠르고 GPU(graphic processing unit) 같은 부가 장치가 필요 없어 손쉽게 사용할 수 있다. 그리고 이 모델은 프로그램 개발을 단순화할 수 있는 장점이 있다(4). 이는 연산 속도 향상을 위한 연구에 적합하여 본 연구에서는 공유 메모리 프로그래밍 모델을 적용하였으며, 그 도구로써 뛰어난 성능과 확장성, 표준 이식성을 갖고 약간의 지시어 추가만으로 쉽게 병렬화를 구현할 수 있는 장점이 있는 OpenMP(open multi-processing)를 사용하였다(5-6).

본 논문에서는 전체 계통을 지역으로 분할하여 다수의 소규모 계통을 동시에 연산하는 기법을 제안한다. 제안된 알고리즘은 병렬화를 이용하여 분할된 계통에 대해 동시에 병렬 연산을 수행함으로써 상태 추정의 총 연산시간이 감소하고, 특히 불량데이터가 존재할 경우 기존의 방법보다 연산시간이 확연히 감소한다. IEEE 시험계통과 한전 2,191 모선 계통에 사례연구를 진행하였고, 이 결과를 통해 제안된 방법의 성능을 검증하였다.

2. 상태 추정

상태 추정은 실시간 전력계통 운용 및 해석을 위한 필수 요소이자 기본적인 도구이다. 상태 추정은 계통 구성요소와 오차가 포함된 계통 측정데이터로부터 측정치와 실제 상태 사이의 오차를 최소로 하는 상태변수를 추정한다. 선로 및 모선의 측정데이터를 계산에 사용하여 데이터에 포함된 불량데이터를 검출 및 제거하는 기능도 있다.

2.1 가중 최소 제곱법(weighted least square method)

식(1)은 상태 추정을 위한 측정데이터 벡터 $z$와 상태 벡터 $x$ 간의 관계를 나타낸다.

(1)
$z=h(x)+e$

여기서, $h(x)$는 비선형 측정 함수이고, $e$는 측정 오차.

상태 추정을 수행하기 위해서 가중 최소 제곱법을 적용하였다. 다음의 식(2)로 표현되는 목적함수를 최소화하여 최적의 상태변수를 추정하는 것이 가중 최소 제곱법 상태 추정의 과정이다(7).

(2)
$$ \begin{aligned} J(x) &=\sum_{i=1}^{m} W_{i i}\left[z_{i}-h_{i}(x)\right]^{2} \\ &=[z-h(x)]^{T} W[z-h(x)] \end{aligned} $$

여기서 $W_{ii}$는 가중치, $m$은 측정데이터 개수, $J(x)$는 목적함수.

가중 최소 제곱법을 사용하는 상태 추정은 수렴 속도가 빠르고 측정데이터 오차를 필터링하는 특성이 뛰어난 장점이 있으나 측정데이터에 불량데이터가 포함되어있는 경우 그 영향에 매우 민감하여 정확한 상태 추정 결과를 도출하는 것에 어려움이 있을 수 있다. 따라서 불량데이터 검출, 식별 및 제거를 위한 별도의 처리 과정이 필요하다.

2.2 불량데이터(bad data)

상태 추정은 신뢰성 높은 계통 정보 데이터베이스를 EMS에 제공하는 데에 목적이 있다. 따라서, 계통 내에서 측정한 각종 데이터에서 불량데이터를 검출, 제거하고, 정확한 데이터를 제공하기 위한 불량데이터 처리 기능이 있어야 한다(8). 불량데이터는 계측기 오류, 편향(bias), 편차(drift) 및 통신 시스템 장애로 인해 발생하는 오류를 의미한다(7-9).

불량데이터는 계통 데이터에 포함되는 불량데이터의 개수에 따라 단일 불량데이터와 다중 불량데이터로 구분할 수 있다. 단일 불량데이터는 계통 데이터에 불량데이터가 하나만 포함된 경우이며 다중 불량데이터는 두 개 이상의 불량데이터가 존재하는 경우이다. 불량데이터를 처리하는 과정은 먼저 불량데이터 존재 여부를 파악하고, 존재한다는 것이 확인되면 어떤 측정데이터가 불량데이터인지 식별하여 그 데이터를 제거하거나 보정하여 상태 추정을 다시 수행하는 것이다. 불량데이터 처리 방법으로는 정규화된 잔차(residual) 값 중 가장 큰 값을 가지는 항목을 불량데이터로 식별하는 LNRT(largest normalized residual test)를 주로 사용한다. 이 방법은 추정 → 불량데이터 처리 → 재추정의 과정을 모든 불량데이터가 제거될 때까지 반복하여 수행한다.

LNRT를 이용한 불량데이터 처리는 한 번에 하나의 불량데이터만 처리할 수 있어 측정데이터에 단일 불량데이터가 있는 경우 한 번의 과정만으로 상태 추정이 완료되지만, 다중 불량데이터의 경우 그 수만큼 반복 횟수가 증가하여 상태 추정 연산 속도에 큰 영향을 미친다. 따라서 기존의 알고리즘으로는 상당한 계산시간이 소요되므로 이를 줄일 방법에 관한 지속적인 연구가 필요하다.

3. 전력계통 상태 추정의 병렬화

지속적인 전력계통의 성장과 계산 부담 증가에 대한 적합한 성능을 유지하고 연산 속도의 증가를 위한 연구는 전력계통 상태 추정 알고리즘 개발에 있어 높은 우선순위 중 하나이다. 지역별로 관리되고 있는 전력계통의 특성은 여러 개의 프로세서가 네트워크 영역에서 각 지역별로 상태 추정을 수행하고 계산 결과를 중앙 컴퓨터로 전송하는 형태로 활용할 수 있다(10-11). 병렬화를 적용하였을 때 얻을 수 있는 긍정적인 효과는 고성능 장비에서뿐만 아니라 일반 컴퓨터에서 구현하였을 때도 얻을 수 있다. 최신 컴퓨터에는 멀티 코어 및 멀티 스레드 프로세서 구조가 탑재되어 있어 그 효과를 더욱 쉽게 얻어낼 수 있게 되었다(12). 또한, 우리나라의 전력계통은 13개 지역의 전력관리처별로 구분 관리되고 있다. 위와 같은 상황으로 보았을 때, 상태 추정 알고리즘에 병렬화 기법을 적용하는 것은 매우 효율적인 결과를 낼 수 있다.

기존의 컴퓨터 소프트웨어는 직렬컴퓨팅 기법을 기본으로 사용한다. 직렬형 명령으로 이루어진 알고리즘을 하나의 CPU가 수행하고 이전의 명령이 끝나야만 다음 명령이 실행된다. 또 명령이 한 번에 하나씩밖에 실행되지 않아 전체 과정에서 많은 시간이 소요된다. 하지만 병렬기법은 복잡한 문제를 작은 단위로 나누어 동시에 수행하고 많은 양의 계산을 동시에 하는 연산기법이다.

3.1 공유 메모리 프로그래밍

앞서 언급한 병렬화 기법 중, 본 논문에서 사용한 병렬화 기법은 공유 메모리 프로그래밍 모델이다. 공유 메모리 프로그래밍 모델은 데이터 교류방식이 가장 단순하고 다른 추가 장치가 필요 없어 누구나 쉽게 사용할 수 있는 모델이고, 대표적인 API(application programming interface)로 OpenMP가 있다. OpenMP는 C/C++/포트란 언어와 마이크로소프트 및 유닉스 등을 지원하는 병렬프로그래밍 API이며 병렬화가 쉽다는 큰 장점이 있다. 복잡한 과정을 필요로하는 다른 API와는 다르게 OpenMP는 기존의 프로그램에 지시어를 추가함으로써 간단히 병렬화할 수 있다. 초기의 OpenMP는 반복 구문 및 재귀 함수 등과 같은 복잡한 프로그램을 병렬화하는 것에 한계가 있었지만, OpenMP 3.0 이상부터는 재귀 함수뿐만 아니라 작업(task) 및 데이터 병렬화까지 지원하여 병렬화 적용이 가능한 문제가 광범위해졌다.

3.2 병렬화

병렬프로그램을 구현하기 위해서는 동시에 수행할 수 있는 대상을 찾아야 하며 이것을 병렬화 과정이라고 한다. 병렬화 과정의 순서는 그림 1과 같다.

그림. 1. 병렬화 과정 순서도

Fig. 1. Flowchart of parallelization process

../../Resources/kiee/KIEE.2021.70.5.727/fig1.png

3.2.1 병렬화 대상 탐색

병렬화 과정 중 첫 번째는 병렬화할 대상을 찾는 것이다. 병렬화할 대상이 많을수록 성능이 향상되는 암달의 법칙을 사용하고, 이는 식(3)과 같다.

(3)
$\dfrac{1}{(1-P)+\dfrac{P}{S}}$

여기서, $P$는 병렬화 비율, $S$는 코어 또는 프로세서 개수.

3.2.2 종속성 분석

병렬화 대상을 찾은 후에 분할된 코드 간에 서로 종속성 없이 동시에 수행 가능한지에 대한 여부를 판단하는 과정인 종속성 분석을 수행한다. 종속성의 종류는 크게 4가지로 구분할 수 있다.

① 데이터 종속성: 변수의 값을 읽고 쓰는 순서에 의해 생기는 종속성으로 흐름 종속성(flow dependency), 역 종속성(anti dependency), 출력 종속성(output dependency)으로 구분할 수 있다.

② 제어 종속성: 제어 흐름(control flow)에 의해 만들어진 종속성을 말한다.

③ 메모리 종속성: 포인터에 의해 만들어지는 종속성으로 변수가 포인터일 때 간접주소가 가리키는 위치가 같은 경우 발생한다.

④ 루프 전이 종속성: 루프에 의해 만들어진 종속성으로 흐름 종속성 및 역 종속성으로 구분할 수 있다.

여기서 흐름 종속성은 쓰기 이후 읽기가 일어나는 경우이며 종속성 해결이 불가능하다. 역 종속성은 읽기 이후 쓰기가 일어나는 경우이고 출력 종속성은 쓰기 이후 쓰기가 일어나는 경우이다. 역 종속성과 출력 종속성은 변수를 추가로 사용하여 해결할 수 있다.

3.2.3 병렬화 기법 결정

종속성 분석 후 대상이 병렬화가 가능하다고 판단되면 다음으로 병렬화 기법을 결정해야 한다. 병렬화 대상의 속성에 따라 작업 병렬화와 데이터 병렬화 두 종류로 결정할 수 있다.

작업 병렬화는 병렬화 대상을 작업별로 구분하는 병렬화 기법이다. 그 후 분해한 작업을 프로세서에 할당하여 서로 다른 기능을 동시에 수행하는 기법이다. 그림 2와 같이 각 프로세서는 작업별로 동시에 수행된다.

그림. 2. 작업 병렬화

Fig. 2. Task parallelization

../../Resources/kiee/KIEE.2021.70.5.727/fig2.png

데이터 병렬화는 같은 연산을 동시에 수행할 경우 사용한다. 이 기법은 그림 3과 같이 데이터를 더 작은 단위로 분해한 후 각 프로세서에 할당하여 동시에 연산을 수행하는 기법이다. 상태 추정은 같은 연산을 반복수행하는 특성이 있어, 본 논문에서는 병렬화 기법을 데이터 병렬화로 선택하였다.

그림. 3. 데이터 병렬화

Fig. 3. Data parallelization

../../Resources/kiee/KIEE.2021.70.5.727/fig3.png

3.3 병렬 상태 추정 알고리즘

상태 추정 수행 시 앞 단계의 결과가 다음 단계에서 사용되기 때문에 상태 추정은 단계 간에 서로 종속성이 존재하며 반드시 순서대로 수행되어야 한다. 그 예시로 이득 행렬(gain matrix)을 계산하기 위해서는 자코비안 계산 과정이 완료되어 그 값을 이용해야 한다.

상태 추정에서 각 단계는 서로 종속성이 존재하므로 병렬화하여 동시에 수행하는 것이 불가능하다. 그러나 상태 추정의 전체 연산끼리는 서로 종속성이 없어 동시 수행이 가능하다. 따라서 상태 추정 전체를 병렬 계산하는 알고리즘을 제안한다. 제안한 알고리즘에 관한 순서도는 그림 4와 같다. 먼저 상태 추정을 동시에 수행하고, 그만큼 각각 변수가 서로 다른 스레드에 영향을 미치지 않도록 선언하였다. 스레드의 개수는 분할된 계통의 수만큼 생성될 수 있도록 구성하였다. 본 논문에서 선택한 데이터 병렬화 기법에 따라, 분할된 계통에 대하여 생성된 스레드 별 상태 추정 연산은 병렬로 동시에 수행된다.

그림. 4. 병렬 상태 추정 알고리즘

Fig. 4. Parallel state estimation algorithm

../../Resources/kiee/KIEE.2021.70.5.727/fig4.png

제안된 방법은 분할된 계통에 대하여 상태 추정을 수행하는 방법으로 원래의 계통보다 작은 크기의 계통에 대해 계산하여 전체 과정을 수행하는 속도가 향상된다. 또한, 작은 계통으로 상태 추정을 수행하기 때문에 다중 불량데이터가 포함된 계통도 연산에 걸리는 시간이 감소한다.

그림. 5. PMU를 이용한 분할 계통의 위상각 보정

Fig. 5. Correction of phase angles of divided system using PMUs

../../Resources/kiee/KIEE.2021.70.5.727/fig5.png

3.4 병렬 상태 추정 결과 통합

병렬 알고리즘을 수행하고 난 후에는 계산된 각 결과를 통합하여 전체적인 결과를 도출해야 한다. 우리나라 전력계통은 13개 지역의 전력관리처별로 관리되고 있고, 병렬화를 이에 적용하여 각 지역별로 상태 추정을 수행한다. 기존의 상태 추정과 병렬 상태 추정 결과에서 모선의 전압 위상각을 뺀 나머지는 값이 일치한다. 따라서 기준 모선을 결정하고 그 모선에 대해 나머지 모선의 전압 위상각을 보정하여 결과를 통합하는 것이 이 알고리즘의 최종 단계가 되고, 이 과정을 수행하는 방법은 두 가지가 있다.

첫 번째 방법은 PMU(phasor measurement unit)를 이용하는 방법이다. 분할된 각 지역에 PMU가 설치되어있는 경우, PMU의 측정을 이용해 지역 간 위상 상차각을 계산하여 병렬 연산한 상태 추정의 결과를 통합할 수 있다. 다음은 PMU를 이용한 결과 통합 과정에 대한 이론이고 그림 5에 표현되어 있다.

① 계통 분할 과정 전 전체 계통에서의 슬랙(slack) 모선에 PMU를 설치하고, 이를 기준으로 설정한다.

② 분할된 계통 내의 PMU의 정보를 사용하여 위상각 정보를 얻는다.

③ 첫 번째 단계에서 설정한 전체 계통 기준 PMU를 기준으로 각 분할 지역 PMU의 위상각을 비교하여 결과를 통합한다.

그림. 6. 연계 선로를 포함하는 계통 분할

Fig. 6. Division of system including tie lines

../../Resources/kiee/KIEE.2021.70.5.727/fig6.png

두 번째 방법은 계통을 분할할 때 인접 지역의 연계 선로(tine line)를 포함하여 분할 지역을 구성하는 것이다. 이에 따른 계통 분할은 그림 6에 표현되어 있으며, 점선으로 표시된 선로가 연계 선로를 의미한다. 다음은 계통 분할 시 연계 선로를 포함하여 병렬 연산한 상태 추정의 결과를 통합하는 과정에 대한 설명이다.

① 연계 선로를 포함하는 분할 계통에 대해 개별로 상태 추정을 수행한다.

② 연계 선로에 속하는 모선 중 하나를 선택하여, 그 모선을 포함하는 지역의 개별 상태 추정 결과에서 위상각의 차이를 계산한다.

식(4),(5)와 같이 계산된 위상차를 이용하여 위상각을 보정하여 결과를 통합한다.

(4)
$\triangle\theta =\theta_{a,\: Area k}-\theta_{a,\: Area m}$

(5)
$\theta_{i,\: cor}=\theta_{i,\: Area m}-\triangle\theta ,\: i=1,\:2,\:...,\: n$

여기서, $\triangle\theta$는 개별 상태 추정 결과 중 연계 선로 모선의 위상차, $a$는 연계 선로에 속하는 모선 번호, $\theta_{i,\: cor}$는 i번 모선의 위상각 보정 결과, $k$는 기존의 슬랙 모선이 포함되는 지역, $m$은 인접 계통, $n$은 모선 수.

표 1. 시험계통 정보

Table 1. The information of test systems

Number of Bus

Number of Line

IEEE 300 Bus System

300

411

KEPCO 2,191 Bus System

2,191

3,746

표 2. IEEE 300모선 계통 지역별 데이터

Table 2. Regional data of IEEE 300 bus system

Number of Bus

Number of Line

Area 1

157

204

Area 2

80

114

Area 3

63

83

표 3. 한전 2,191모선 계통의 지역별 데이터

Table 3. Regional data of KEPCO 2,191 bus system

Number of Bus

Number of Line

Area 1

197

354

Area 2

245

375

Area 3

171

262

Area 4

261

425

Area 5

112

165

Area 6

81

128

Area 7

254

399

Area 8

80

127

Area 9

165

298

Area 10

225

432

Area 11

218

351

Area 12

152

255

4. 사례연구

분할 계통에 대한 병렬화 기법 적용 상태 추정의 연산 속도 및 불량데이터 처리 성능향상의 검증을 위해 표 1에 기입된 내용과 같은 계통을 사용하여 사례연구를 진행하였다.

상태 추정에 병렬화 기법을 적용하기 위해서 원래의 계통을 분할하는 과정을 진행하였다. IEEE 300모선 계통은 3개의 지역으로 구분되어 있어 그 지역을 기준으로 분할하였고(13), 한전 2,191모선 계통은 전력관리처별로 13개의 지역(서울, 남서울, 인천, 경기, 강원, 충북, 대전・충남, 전북, 광주・전남, 대구・경북, 경남, 부산・울산)으로 구분된다. 본 논문에서는 그림 7과 같이 계통이 작은 서울 2개의 지역을 하나의 지역으로 간주하여 총 12개의 지역으로 분할하였다. 표 2표 3은 각각 분할된 IEEE 300모선 계통과 한전 2,191모선 계통의 각 지역 모선 개수와 선로 개수를 나타낸다.

이외에도 2개의 지역으로 분할된 IEEE 14모선 계통과 IEEE 30모선 계통, 4개 지역으로 분할된 IEEE 57모선 계통, 그리고 3개의 지역으로 분할된 IEEE 118모선 계통을 사례연구를 위해 사용하였다.

그림. 7. 지역별 한전 계통

Fig. 7. KEPCO regional system

../../Resources/kiee/KIEE.2021.70.5.727/fig7.png

표 4. 연산시간 비교

Table 4. The comparison of computation time

Conventional

State Estimation

Parallel

State Estimation

Calculation time

[sec]

Max

Error

[%]

Calculation time

[sec]

Max

Error

[%]

IEEE 14

Bus System

0.002

0.0013

0.001

0.0013

IEEE 30

Bus System

0.006

0.0021

0.005

0.0019

IEEE 57

Bus System

0.016

0.0013

0.019

0.0014

IEEE 118

Bus System

0.041

0.0023

0.048

0.0018

IEEE 300

Bus System

0.198

0.0016

0.123

0.0020

KEPCO 2,191

Bus System

5.172

0.0023

1.779

0.0021

4.1 불량데이터를 포함하지 않는 계통 시험

병렬화 기법 적용 상태 추정의 연산 속도 증가를 검증하기 위해 각 계통에 대해 기존의 상태 추정과 제안된 방법의 연산시간을 비교하였다. 측정한 연산시간은 상태 추정의 연산 시작부터 상태변수가 수렴하여 반복연산이 끝나는 시점까지의 시간이다. 표 4는 기존의 상태 추정 및 병렬화 기법이 적용된 상태 추정 과정의 연산시간을 나타낸다.

모의실험 결과 모든 계통에서 병렬화 기법이 적용된 상태 추정의 연산시간이 더 우수한 결과를 보였다. 계통의 크기가 작은 경우 기존의 상태 추정과 병렬화 기법이 적용된 상태 추정 간의 연산시간 차이가 크지 않았지만, 한전 2,191모선 계통과 같이 대형 계통의 경우에는 약 3배의 속도가 향상됨을 볼 수 있다. 기존 상태 추정과 병렬화 기법이 적용된 상태 추정 결과의 최대 오차값의 백분율을 최대 오차값으로 정리하였다. 같은 계통을 병렬화하여 연산했으므로 기존 상태 추정과 병렬화 상태 추정 간의 최대오차율은 매우 비슷한 결과를 보인다.

제안된 방법은 분할된 지역의 수를 스레드 개수로 사용하였다. 결과적으로 계통의 크기뿐만 아니라 병렬화 기법에 사용되는 스레드의 수가 많을수록, 즉 분할된 지역이 많을수록 기존의 방법보다 병렬화 기법이 상태 추정의 속도 면에 있어 더 유리하다.

4.2 불량데이터를 포함하는 계통 시험

제안된 방법의 불량데이터 처리 성능향상 검증을 위해 계통에 불량데이터의 개수를 늘려가며 적용하여 상태 추정을 수행하였고 불량데이터 처리 방법으로는 LNRT(largest normalized residual test)를 사용하였다. LNRT는 측정데이터 내에 불량데이터가 없을 때까지 불량데이터 처리 과정을 반복하기 때문에 불량데이터의 개수가 증가함에 따라 연산시간이 증가한다. 이를 줄이기 위해 병렬 상태 추정을 적용하여 기존의 상태 추정과의 연산시간을 비교하였다. 다음과 같은 형태의 불량데이터를 임의로 계통 측정데이터에 추가하여 모의실험을 진행하였다.

① 계측기의 고장으로 인해 측정되지 않거나 통신 오류로 인해 손실된 값

② 측정 장비의 잘못된 설치로 인해 부호가 반대인 값

표 5는 IEEE 300모선 계통과 한전 2,191모선 계통에 임의로 추가한 불량데이터의 한 예이다. 포함된 불량데이터에 표기된 기호의 의미는 다음과 같다.

① $V_{i}$ : $i$번 모선의 전압 크기

② $P_{i}$ : $i$번 모선의 유효 주입전력

③ $Q_{i}$ : $i$번 모선의 무효 주입전력

④ $P_{i-j}$ : $i$번 모선과 $j$번 모선의 유효 조류전력

⑤ $Q_{i-j}$ : $i$번 모선과 $j$번 모선의 무효 조류전력

표 5. 계통에 추가한 불량데이터의 예

Table 5. The example of bad data added to the system

Included Bad Data

IEEE 300 Bus System

$V_{69}$, $V_{148}$, $P_{76}$, $P_{84}$, $P_{211}$, $Q_{76}$, $Q_{84}$, $Q_{211}$, $P_{23-25}$, $Q_{23-25}$

KEPCO 2,191 Bus System

$V_{88}$, $V_{282}$, $P_{950}$, $P_{1816}$, $Q_{950}$, $Q_{1816}$, $P_{520-524}$, $P_{532-540}$, $Q_{520-524}$, $Q_{532-540}$

표 6. IEEE 300모선 계통의 불량데이터 처리 결과

Table 6. The result of bad data processing on IEEE 300 bus system

Number of

Bad Data

Conventional

State Estimation

Parallel

State Estimation

Calculation time

[sec]

Max

Error

[%]

Calculation time

[sec]

Max

Error

[%]

0

0.337

0.0013

0.291

0.0013

1

0.813

0.0016

0.315

0.0014

10

1.633

0.0018

0.578

0.0016

20

2.487

0.0026

0.769

0.0024

30

3.285

0.0019

0.981

0.0020

4.2.1 IEEE 300모선 계통 적용 사례

표 6은 IEEE 300모선 계통의 불량데이터 개수에 따른 상태 추정 연산시간이다. 연산시간은 상태 추정의 주요 함수 연산부터 불량데이터 처리가 끝나기까지의 시간이다. 모의실험 결과 기존 상태 추정과 제안된 방법 모두에서 불량데이터의 개수가 증가함에 따라 연산시간도 증가하는 것을 볼 수 있다. 불량데이터가 없는 경우에는 기존 상태 추정과 제안된 방법 간의 연산 속도 차이가 작지만, 불량데이터가 1개인 경우 속도가 약 2.5배 증가하였고 10개인 경우 약 2.8배, 20개인 경우 3.2배, 30개인 경우 3.4배로 불량데이터의 개수가 증가할수록 속도의 증가율도 높아진다. 불량데이터를 포함하지 않는 모의실험과 같이 기존 상태 추정과 병렬화 상태 추정 간의 최대오차율 차이는 거의 없다. 결과적으로 같은 개수의 불량데이터라도 병렬화 기법이 적용된 상태 추정의 불량데이터 처리 성능이 기존의 상태 추정보다 더 좋고, 불량데이터의 개수가 증가할수록 그에 따른 연산 속도의 증가율도 높아진다.

4.2.2 한전 2,191 모선 계통 적용 사례

다음으로 한전 2,191모선 계통에 대한 모의실험을 진행하였다. 표 7은 한전 2,191모선 계통의 불량데이터 개수에 따른 상태 추정 연산시간이다. 표 4에서의 연산시간은 상태 추정 수렴까지의 시간만을 표시하였고, 불량데이터를 포함하는 계통 시험의 연산시간은 상태 추정 수렴시간 이외에 불량데이터 처리 과정이 포함되기 때문에 둘 간의 연산시간에는 차이가 있다. 결과는 앞의 모의실험과 동일하게 불량데이터의 개수가 증가함에 따라 연산시간이 증가하고 불량데이터 처리 속도의 증가율도 높아지는 것을 볼 수 있다.

표 7. 한전 2,191모선 계통의 불량데이터 처리 결과

Table 7. The result of bad data processing on KEPCO 2,191 bus system

Number of

Bad Data

Conventional State

Estimation

Parallel

State Estimation

Calculation time

[sec]

Max

Error

[%]

Calculation time

[sec]

Max

Error

[%]

0

42.220

0.0023

3.756

0.0021

10

92.482

0.0019

4.277

0.0024

20

134.08

0.0025

5.164

0.0023

30

182.975

0.0022

6.416

0.0018

40

205.247

0.0027

6.724

0.0026

기존 상태 추정의 불량데이터 처리 과정은 불량데이터 개수의 증가에 따른 연산시간의 증가율이 굉장히 높다. 반면, 병렬화 기법이 적용된 상태 추정의 불량데이터 처리 연산시간은 불량데이터 개수의 증가에도 연산시간 증가율이 낮다. 한전 2,191모선 계통과 같은 대형 계통에서 기존 상태 추정에 대한 병렬 상태 추정의 연산 속도 최대 증가율은 약 30배이고, 이는 상태 추정 불량데이터 처리에 있어 병렬 상태 추정이 기존의 상태 추정보다 훨씬 유리함을 검증하였다. 최대오차율을 보았을 때, 두 방법 모두 높은 정확도를 보이고 최대오차율이 거의 같은 값을 가진다.

모의실험 결과 IEEE 300모선 계통과 한전 2,191모선 계통 모두에서 다중불량데이터가 포함되어있는 경우에도 병렬화 기법을 적용한 상태 추정이 더 좋은 성능을 보인다. LRNT는 모든 모선의 잔차값을 계산해야 하기에 기존의 상태 추정에서는 계통이 커질수록 연산시간이 증가하게 된다. 반면 제안된 방법의 상태 추정은 전체 모선을 몇 개의 지역으로 나누어서 상태 추정을 수행하게 되므로 상대적으로 연산시간이 감소한다

5. 결 론

전력계통의 효율적이고 안정적인 운용을 위하여 상태 추정은 필수적이고, 실시간으로 계산하는 특성에 따라 정확도 개선과 연산 속도의 향상이 중요하다. 상태 추정의 주요 함수 연산과 불량데이터 처리 과정은 상태 추정 연산 속도 저하에 상당한 영향을 미친다. 상태 추정은 역행렬 및 비선형 함수를 사용하는 연산이므로 많은 반복과정이 필요하다. 이로 인해 기존의 알고리즘으로는 상당한 계산시간이 소요된다. 본 논문에서는 연산 속도의 향상을 위해 병렬컴퓨팅 기법을 이용한 상태 추정 연산 성능의 향상을 제안한다.

제안된 상태 추정 알고리즘은 전체 계통을 소규모로 분할하여 상태 추정을 동시에 수행하기 때문에 상태 추정 연산시간을 상당히 감소시킬 수 있다. 불량데이터 처리 과정에 사용한 LNRT는 계통의 모든 모선의 잔차값을 계산하여 불량데이터를 처리하므로, 기존 상태 추정에서는 계통 규모가 커질수록 속도가 느려질 수밖에 없다. 반면 병렬기법이 적용된 상태 추정에서는 전체 모선을 나누어서 상태 추정을 수행하게 되므로 속도가 향상된다.

제안된 알고리즘의 상태 추정 및 다중 불량데이터 처리 성능향상 검증을 위해 모의실험을 진행하였다. 불량데이터 처리를 포함하는 시간을 비교하면, 기존의 상태 추정과 비교하여 제안된 상태추정기법의 연산시간이 최대 96.7% 감소하였다.

현재 우리나라는 전력관리처별로 지역을 나누어서 관리하고 있다. 제안된 알고리즘을 이용하여 지역별로 상태 추정을 수행하면, 기존의 알고리즘과 비교해 더 빠르게 계통 데이터베이스를 구축 할 수 있다. 따라서 EMS 내의 각종 응용프로그램에 신뢰성 높은 데이터를 제공할 수 있고, 전력계통 운용을 보다 안정적이고 효율적으로 할 수 있을 것으로 기대한다.

Acknowledgements

This resarch was supported by Soonchunhyang University (Grant number: 20120669) and Korea Electric Power Corporation (Grant number: R18XA06-76).

References

1 
Yoon-Tae Sohn, 2007, Energy Management System (EMS), Proc. of the Korean Institute of Illuminating and Electrical Installation Engineers, Vol. 21, No. 2, pp. 3-11Google Search
2 
H. Zhao, 2006, A New State Estimation Model of Utilizing PMU Measurements, Proc. of IEEE Power System Technology Conference, pp. 1-5DOI
3 
M. Elizondo, Y. Chen, Z. Huang, 2012, Reliability value of fast state estimation on power systems, Proc. of IEEE PES Transmission and Distribution ConferenceDOI
4 
I. Foster, 1995, Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering, AddisonWesleyGoogle Search
5 
Min-Jang Kim, 2010, Multicore CPU Story that Programmers Didn’t Know, Hanbit MediaGoogle Search
6 
Young-Hoon Jeong, 2011, OpenMP Parallel Programming-C, C++ Multi Threading Standards for Multicore, FreelecGoogle Search
7 
A. Abur, A. Exposito, 2004, Power System State Estimation: Theory and Implementation, CRC PressGoogle Search
8 
A. Monticelli, A. Garcia, 1983, Reliable Bad Data Processing for Real-Time State Estimation, IEEE Trans. on Power Apparatus and Systems, Vol. PAS-102, No. 3, pp. 1126-1139DOI
9 
A. Monticelli, 1999, State Estimation in Electric Power Systems: A Generalized Approach, KluwerA cademic PublishersGoogle Search
10 
J. B. Carvalho, F. M. Barbosa, 1998, Parallel and Distributed Processing in State Estimation of Power System Energy, Proc. of 9th Mediterranean Electrotechnical ConferenceDOI
11 
J. B. Carvalho, F. M. Barbosa, 1998, A Parallel Algorithm to Power Systems State Estimation, Proc. of International Conference on Power System TechnologyDOI
12 
Ilya Polyakov, Pavel Chusovitin, Olga Malozemova, Andrey Pazderin, 2017, The Usage of Parallel Calculations in State Estimation Algorithms, Proc. of 9th International Conference on Information Technology and Electrical EngineeringDOI
13 
https://labs.ece.uw.edu/pstca/Google Search

저자소개

전재원(Jaewon Jeon)
../../Resources/kiee/KIEE.2021.70.5.727/au1.png

He received his B.S. degree in Electronics and Information Engineering from Soonchunhyang University, Korea, in 2020.

He is currently a masters student at the Dept. of Electrical and Robot Engineering at Soonchunhyang University, Korea.

정희윤(Heeyun Jeong)
../../Resources/kiee/KIEE.2021.70.5.727/au2.png

She received his B.S. degree in Electronics and Information Engineering from Soonchunhyang University, Korea in 2018.

She received his M.S. degree in the Dept. of Electrical and Robot Engineering at Soonchunhyang University, Korea, in 2020.

김병호(Byoung-Ho Kim)
../../Resources/kiee/KIEE.2021.70.5.727/au3.png

He received his B.S., M.S. and Ph.D. degrees in Electrical Engineering from Soonchunhyang University, Korea, in 2007, 2009 and 2015, respectively.

He is currently an assistant professor at the Dept. of Electronics and Information Engineering at Soonchunhyang University, Korea.

김홍래(Hongrae Kim)
../../Resources/kiee/KIEE.2021.70.5.727/au4.png

He received his B.S. and M.S. degrees in Electrical Engineering from Yonsei University, Korea in 1986 and 1989, respectively.

He received his Ph.D. in Electrical Engineering from Texas A&M University, College Station, Texas, in 1995.

He is currently a professor at the Dep. of Electronics and Information Engineering at Soonchunhyang University, Korea.

His research include power system analysis and state estimation.