python:three-phaseelectricpower

三相交流のPythonスクリプト

# coding: utf-8
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
np.set_printoptions(suppress=True)    # 小数点表示
 
# 時系列のサンプルデータ作成
n = 256                         # データ数
dt = 0.01                       # サンプリング間隔
f = 1                           # 周波数
fn = 1/(2*dt)                   # ナイキスト周波数
t = np.linspace(1, n, n)*dt-dt        # 時間
ia = np.sin(2*np.pi*f*t)                # sin波、位相を2*pi/3ずつずらす
ib = np.sin(2*np.pi*f*t - 2*np.pi/3)
ic = np.sin(2*np.pi*f*t - 4*np.pi/3)
 
iabc = np.array([ia, ib, ic])
iabc.shape
plt.figure()
plt.plot(t, iabc[0, :], "b")
plt.plot(t, iabc[1, :], "g")
plt.plot(t, iabc[2, :], "r")
plt.xlim(0, 2)
 
# クラーク変換(三相交流 -> 二相交流)
crack_abs = np.sqrt(2/3) * np.array([[1, -1/2, -1/2],[0, np.sqrt(3)/2 , -np.sqrt(3)/2 ]]) # 絶対変換
crack_rel = 2/3 * np.array([[1, -1/2, -1/2],[0, np.sqrt(3)/2 , -np.sqrt(3)/2 ]])    # 相対変換
 
iab = np.dot(crack_abs, iabc)
plt.figure()
plt.plot(t, iab[0, :], "b")
plt.plot(t, iab[1, :], "g")
plt.xlim(0, 2)
park_abs = np.array([[np.cos(2*np.pi*f*t), np.sin(2*np.pi*f*t)],[-np.sin(2*np.pi*f*t), np.cos(2*np.pi*f*t)]]) # 絶対変換
park_abs[:,:,2]
np.dot(park_abs[:,:,1], iab[:,1])
 
 
iab = np.dot(iabc, crack_rel_T)
park = np.array([[np.cos(theta), np.sin(theta)],[-np.sin(theta), np.cos(theta)]])
 
idq = np.empty([2000,2])
for i in range(2000):
    idq[i,:] = np.dot(park[:,:,i], iab[i,:])
  • python/three-phaseelectricpower.txt
  • 最終更新: 2023/12/10
  • by yuqlid