가상동기 제어(VSG) 기술은 전원 인버터를 전통적인 동기 발전기를 모사하여 전기 시스템의 안정성을 향상시키는 기술로, 최근 들어 많은 주목을 받고 있습니다. 오늘은 전원형 VSG의 임피던스 모델링 및 임피던스 스캐닝 검증 방법에 대해 알아보고, 가상동기 발전기의 양/음차 임피던스 모델링 방법을 설명하고, 풍력단기의 다단형 MMC에서 스캐닝 범위와 점수를 설정하는 방법 및 주석이 포함된 프로그램을 공유합니다.
1. VSG 기술 개요
가상동기 제어(VSG)는 전원 인버터를 통해 전통적인 동기 발전기의 운전 특성을 모사하여, 전기 시스템의 주파수와 전압 조절에 기여합니다. 이 과정에서 인버터의 임피던스 특성, 특히 양/음차 임피던스는 시스템의 안정성과 전력 품질에 중요한 영향을 미칩니다.
2. 임피던스 모델링 이론
1) 양/음차 임피던스
삼상 시스템에서는 양/음차 성분을 통해 비대칭 故障 등을 분석할 수 있습니다. VSG에서도 양/음차 임피던스 모델링은 인버터가 다양한 운전 상태에서의 전기적 특성을 종합적으로 평가하는 데 도움이 됩니다. 아래의 단순한 삼상 전원형 인버터 예를 통해 양/음차 임피던스를 이해할 수 있습니다.
# 이 예는 이미 있는 전압과 전류 값을 가정합니다.
# 복소수 형식으로_PHASE 값을 표현합니다.
V_a = complex(1, 0) # A상 전압_PHASE 값
I_a = complex(0.5, 0.5) # A상 전류_PHASE 값
# 양차 임피던스를 계산합니다. 이 예제는 단순화 되어 있지만, 실제는 3상 시스템 변환을 고려해야 합니다.
Z_positive = V_a / I_a
print(f"양차 임피던스: {Z_positive}")
이 코드는 양차 임피던스의 계산을 단순히 모티브로 삼았으며, 실제 적용에서는 3상 시스템의 abc에서 양/음차 변환 행렬을 사용해야 합니다.
2) 가상동기 발전기의 양/음차 임피던스 모델링
가상동기 발전기의 양/음차 임피던스 모델링은 동기 발전기의 관성, 감쇠 및 전자변환기 제어 전략을 종합적으로 고려해야 합니다. 일반적인 2차 VSG 모델을 예로 들어보겠습니다. 그의 출력 임피던스는 소신호 분석을 통해 얻을 수 있습니다. 예를 들어, VSG의 제어 방정식은 다음과 같습니다:
\[ \omega = \omega0 - \frac{1}{J} \int (P - P{ref}) dt - D (\omega - \omega_0) \]
\[ E = E0 - \frac{1}{K} \int (Q - Q{ref}) dt \]
이러한 방정식을 선형화한 후, 회로 이론을 통해 VSG의 양/음차 임피던스 모델을 도출할 수 있습니다. 이 과정은 복잡하지만, VSG의 전기적 특성에 대한 이해에 필수적입니다.
3. 임피던스 스캐닝 및 검증
1) 스캐닝 범위와 점수 설정
풍력단기의 다단형 MMC 시스템에서 VSG의 임피던스를 스캐닝 검증할 때, 스캐닝 범위와 점수 설정이 매우 중요합니다. 이는 임피던스 특성에 대한 세부적인 정보를 얻는 데 결정적인 역할을 합니다. 예를 들어, 1Hz부터 100Hz까지의 주파수 범위에서 100개의 스캐닝 점을 설정할 수 있습니다:
start_freq = 1
end_freq = 100
num_points = 100
freq_points = [start_freq + (end_freq - start_freq) * i / (num_points - 1) for i in range(num_points)]
print(f"스캐닝 주파수 점: {freq_points}")
이 코드는 스캐닝에 필요한 주파수 점을 생성합니다. 각 주파수 점에서의 임피던스를 계산하면, 주파수에 따른 임피던스 변화 곡線을 얻을 수 있습니다.
2) 임피던스 스캐닝 검증 과정
스캐닝 방법을 통해 다양한 주파수에서 미소 신호를 주입하고 VSG의 응답을 측정하여 각 주파수에서의 임피던스를 계산할 수 있습니다. 이 과정은 전문적인 전기 시스템 시뮬레이션 도구와 함께 수행됩니다. 아래는 간단한 VSG 시뮬레이션 모델 프레임워크입니다(실제 응용에서는 전문적인 도구가 사용됩니다):
import simpy
class VSG:
def __init__(self, env, omega0, P_ref, Q_ref, J, D, K):
self.env = env
self.omega = omega0
self.P_ref = P_ref
self.Q_ref = Q_ref
self.J = J
self.D = D
self.K = K
self.E = 1.0 # 초기 전압 크기
def run(self):
while True:
# 전력편차 계산
P_dev = self.P - self.P_ref
Q_dev = self.Q - self.Q_ref
# 각속도 업데이트
self.omega = self.omega - (1 / self.J) * P_dev * self.env.dt - self.D * (self.omega - self.omega0)
# 전압 크기 업데이트
self.E = self.E - (1 / self.K) * Q_dev * self.env.dt
yield self.env.timeout(1) # 시간 단위를 1초로 가정
# 시뮬레이션 환경 생성
env = simpy.Environment()
# VSG 파라미터 초기화
omega0 = 2 * 3.14 * 50
P_ref = 1.0
Q_ref = 0.5
J = 0.1
D = 0.01
K = 0.1
vsg = VSG(env, omega0, P_ref, Q_ref, J, D, K)
env.process(vsg.run())
# 시뮬레이션 실행
env.run(until = 100) # 100초 동안 실행
이 간단한 시뮬레이션 모델은 VSG의 운전 과정을 모사하고, 실제 임피던스 스캐닝 검증에서 다양한 주파수에서의 응답을 관찰할 수 있도록 합니다.
4. 프로그램 주석 완전 해설
다음은 완전한 임피던스 모델링 스캐닝 프로그램이며, 각 행에 주석이 포함되어 있습니다:
import numpy as np
import matplotlib.pyplot as plt
# 스캐닝 범위와 점수 설정
start_freq = 1
end_freq = 100
num_points = 100
# 주파수 점 생성
freq_points = np.linspace(start_freq, end_freq, num_points)
# 임피던스 배열 초기화
impedance = np.zeros(num_points, dtype = complex)
# 가정된 VSG 파라미터
R = 0.1
L = 0.01
for i, freq in enumerate(freq_points):
omega = 2 * np.pi * freq # 각속도 계산
# 간단한 RL 연결 모델을 가정한 임피던스 계산, 실제 VSG 임피던스 계산은 더 복 tạp합니다.
Z = R + 1j * omega * L
impedance[i] = Z
# 임피던스 크기와 위상 곡線 그리기
plt.figure(figsize=(12, 6))
plt.subplot(2, 1, 1)
plt.plot(freq_points, np.abs(impedance))
plt.title('임피던스 크기 대 주파수')
plt.xlabel('주파수 (Hz)')
plt.ylabel('크기 (옴)')
plt.subplot(2, 1, 2)
plt.plot(freq_points, np.angle(impedance, deg = True))
plt.title('임피던스 위상 대 주파수')
plt.xlabel('주파수 (Hz)')
plt.ylabel('위상 (도)')
plt.tight_layout()
plt.show()
이 프로그램은 먼저 스캐닝 범위와 점수를 정의한 후 주파수 점을 생성합니다. 그 다음 임피던스 배열을 초기화하고, 가정된 VSG 파라미터를 사용하여 각 주파수 점에서의 임피던스를 계산합니다. 마지막으로 임피던스 크기와 위상 곡線을 그래프로 그려 시각적으로 분석할 수 있도록 합니다.
이상으로 이론부터 프로그램 재현까지 전원형 VSG의 임피던스 모델링 및 임피던스 스캐닝 검증에 대해 종합적으로 알아보았습니다. 이 내용이 관련 분야의 연구와 실천에 도움이 되길 바랍니다.