PQN 깊게 보기
"한 사이클을 위상 슬롯으로 잘게 쪼개서 슬롯마다 PD 크기 기록한 것" — 이 한 줄이 무슨 뜻인지를 그림과 수식으로.
1단계 — 한 사이클
전력선 AC 신호의 한 주기. 60 Hz면 16.67 ms. 이 한 주기를 각도로 보면 0° 부터 360°까지가 한 바퀴.
phase 0° = 사이클 시작점.
이걸 알아야 "어느 위상에서 PD가 떴다" 가 의미를 가진다.
장비는 sync 신호로 0° 시점을 항상 추적한다.
2단계 — 한 사이클을 256 슬롯으로 자른다
수식
슬롯 폭 (각도) = 360° / 256 ≈ 1.40625°
슬롯 폭 (시간) = 16.67ms / 256 ≈ 65.1 µs (60Hz 기준)
슬롯 i 의 위상 = i × 360° / 256 = i × 1.40625°
슬롯 i 의 시간 = i × T_cycle / 256
where T_cycle = 1 / sync_freq
sync 주파수가 다르면 슬롯의 시간 폭도 달라진다. 60 Hz면 65 µs, 120 Hz면 32.5 µs. 슬롯 개수(=256)와 위상 폭(=1.4°)은 sync 주파수와 무관하게 항상 같다.
3단계 — PD 펄스가 어디서 떴는지 본다
PD는 ns ~ µs 단위의 짧고 뾰족한 펄스. AC 사인파 위에 가끔 얹혀서 들어옴.
각 PD 펄스가 발생한 시각 → 그 사이클 내 위상 → 슬롯 인덱스 변환. sync 가 0° 시점을 알려주기 때문에 가능한 계산.
4단계 — 슬롯마다 PD 크기를 기록 → bin
각 슬롯에 그 슬롯에서 검출된 PD 크기를 적어넣는다. 펄스가 안 뜬 슬롯은 0.
bin[ 0] = 0
bin[ 1] = 0
...
bin[ 17] = 850 ← 17번 슬롯에서 PD 펄스 (크기 850)
bin[ 18] = 0
...
bin[145] = 1240 ← 145번 슬롯에서 PD 펄스 (크기 1240)
bin[146] = 0
...
bin[255] = 0
이 256개 정수(uint16) 배열이 한 채널·한 사이클의 PQN bin.
이걸 한 사이클이 끝날 때마다 채널마다 한 개씩
PQN_DATA_PACKET 로 보낸다.
5단계 — 수식으로
PQN_bin[i] = 슬롯 i 에서 검출된 PD 펄스의 대표 크기
슬롯 i = 위상 구간 [ i × 360°/256, (i+1) × 360°/256 )
= 시간 구간 [ i × T_cycle / 256, (i+1) × T_cycle / 256 )
i ∈ {0, 1, ..., 255}
T_cycle = 1 / sync_freq
대표 크기는 보통 max{|PD_pulse(t)|: t ∈ slot_i} (펌웨어 구현에 따라 합일 수도)
6단계 — 왜 위상 정렬이 중요한가
PD 펄스는 절연 결함의 종류에 따라 사인파의 특정 위상에서 반복적으로 발생하는 경향이 있음 (예: 코로나는 양/음 정점 부근, 표면방전은 영교차 부근 등). 그래서 같은 위상에서 반복 발생하는 패턴 자체가 결함 종류를 식별하는 단서.
사이클 1 PQN: bin[ 17]=850, bin[145]=1240, 나머지 0
사이클 2 PQN: bin[ 18]=920, bin[143]=1100, 나머지 0
사이클 3 PQN: bin[ 17]=780, bin[146]=1300, 나머지 0
사이클 4 PQN: bin[ 16]=900, bin[145]=1190, 나머지 0
... ← 비슷한 위상에 또, 또 떴다
이 반복성을 보려면 각 사이클의 0°가 같은 위치여야 한다. sync 가 그 기준.
7단계 — 여러 사이클을 겹쳐서 PRPS / PRPD
한 사이클의 PQN bin 배열은 점 256개의 line 한 줄. 이걸 N 사이클 누적해서 그리면:
PRPS = Phase-Resolved Pulse Sequence
여러 사이클의 bin 점들을 같은 phase 축에 겹쳐 그린 것.
PRPD = Phase-Resolved Partial Discharge (heatmap)
위상 × 크기 격자에 누적 발생 횟수를 색으로.
한 줄 요약
FAQ
Q. FFT를 쓰는 거 아닌가?
아니다. 이 시스템에서 FFT는 TF 데이터를 만들 때
SCOPE 원파형에 적용된다. PQN은 phase-binning(시간 도메인 분류) 결과.
코드로도 internal/prpsdata/ 에는 fft import 가 없다.
Q. bin 값이 max 인지 sum 인지?
PDF에 명시 없음. 펌웨어 구현에 따라 다를 수 있으나, PRPS 누적 알고리즘이 bin 값을 그대로 amplitude 로 쓰는 것을 보면 슬롯 대표값(보통 max)일 가능성이 높다. 정확한 답은 펌웨어 명세나 캡처 분석으로 확인 필요.
Q. ch_number = 8(sync) 채널은 뭔가?
입력 채널(0~7) 외에 sync 신호 자체도 PQN으로 보낸다.
8번 채널의 PQN bin은 sync 펄스 위치/품질을 담은 특수 워드(SyncWord:
pulse flag 1bit + cycle_index 6bit + graph 9bit).
입력 채널 모두 ch_on=0 이어도 8번은 항상 보내짐.
Q. SCOPE 와 어떻게 매칭하나?
두 패킷 모두 cycle_index 를 가지고 있다.
같은 인덱스끼리 짝짓기. 단 PQN 이 SCOPE 보다 buffer_size/256 주기만큼 늦게 도착한다
(PQN 은 sync 정렬 후 묶음 전송).