2. 等功率Clark变换与等幅值Clark变换的对比

任务目标

实现等功率Clark变换与等幅值Clark变换,对比两者在变换矩阵系数上的差异,并通过功率计算验证等功率变换的功率守恒特性。

核心原理与差异

设三相瞬时电压为 \(u_a,u_b,u_c\),电流为 \(i_a,i_b,i_c\)。两种变换均将三相静止坐标系映射到两相静止 \(\alpha\beta\) 坐标系,但矩阵系数不同:

  • 等幅值Clark:变换后 \(\alpha\) 轴分量幅值与相电压幅值相等,矩阵系数为 \(2/3\)。
  • 等功率Clark:变换前后功率数值相等,矩阵系数为 \(\sqrt{2/3}\)。

两种变换的逆变换矩阵分别为对应正变换矩阵的转置(等功率)或 \(3/2\) 倍转置(等幅值)。功率差异体现在:等幅值变换后,\(\alpha\beta\) 坐标系下的功率计算需乘以 \(3/2\) 才等于三相瞬时功率;而等功率变换无需修正系数。

关键完整代码

import numpy as np

def clark_amplitude(u_a, u_b, u_c):
    """等幅值Clark变换,矩阵系数2/3"""
    return np.array([
        (2/3) * (u_a - 0.5*u_b - 0.5*u_c),
        (2/3) * (np.sqrt(3)/2 * (u_b - u_c))
    ])

def clark_power(u_a, u_b, u_c):
    """等功率Clark变换,矩阵系数sqrt(2/3)"""
    return np.array([
        np.sqrt(2/3) * (u_a - 0.5*u_b - 0.5*u_c),
        np.sqrt(2/3) * (np.sqrt(3)/2 * (u_b - u_c))
    ])

def power_3phase(u_a, u_b, u_c, i_a, i_b, i_c):
    """三相瞬时功率"""
    return u_a*i_a + u_b*i_b + u_c*i_c

def power_ab(u_alpha, u_beta, i_alpha, i_beta, scale='power'):
    """alpha-beta坐标系功率计算,scale指定变换类型"""
    if scale == 'power':
        return u_alpha*i_alpha + u_beta*i_beta
    elif scale == 'amplitude':
        return 1.5 * (u_alpha*i_alpha + u_beta*i_beta)

# 测试用例:三相对称电压与电流(幅值100V,相位差30度)
u_amp = 100.0
i_amp = 5.0
theta_u = 0.0
theta_i = np.deg2rad(30)

u = [u_amp*np.cos(theta_u), 
     u_amp*np.cos(theta_u - 2*np.pi/3),
     u_amp*np.cos(theta_u + 2*np.pi/3)]
i = [i_amp*np.cos(theta_i),
     i_amp*np.cos(theta_i - 2*np.pi/3),
     i_amp*np.cos(theta_i + 2*np.pi/3)]

# 计算两种变换结果
u_ab_amp = clark_amplitude(*u)
u_ab_pow = clark_power(*u)
i_ab_amp = clark_amplitude(*i)
i_ab_pow = clark_power(*i)

# 功率对比
p_3ph = power_3phase(*u, *i)
p_amp = power_ab(*u_ab_amp, *i_ab_amp, 'amplitude')
p_pow = power_ab(*u_ab_pow, *i_ab_pow, 'power')

print("=== 变换矩阵系数对比 ===")
print(f"等幅值矩阵系数: 2/3 = {2/3:.4f}")
print(f"等功率矩阵系数: sqrt(2/3) = {np.sqrt(2/3):.4f}")
print(f"系数比值: {np.sqrt(2/3)/(2/3):.4f} = sqrt(3/2)")

print("\n=== 电压变换结果(幅值100V) ===")
print(f"等幅值 u_alpha: {u_ab_amp[0]:.2f}V (期望100.00)")
print(f"等功率 u_alpha: {u_ab_pow[0]:.2f}V (期望81.65)")

print("\n=== 功率验证 ===")
print(f"三相瞬时功率: {p_3ph:.2f} W")
print(f"等幅值变换后功率(×1.5): {p_amp:.2f} W")
print(f"等功率变换后功率: {p_pow:.2f} W")
print(f"等功率误差: {abs(p_pow - p_3ph):.2e} W")

运行与验证

直接运行上述Python脚本(需安装NumPy),观察输出:

  • 矩阵系数:等幅值系数为0.6667,等功率系数为0.8165,比值约为1.2247(即 \(\sqrt{3/2}\))。
  • 电压幅值:等幅值变换后 \(u_\alpha\) 为100V(与相电压幅值一致);等功率变换后为81.65V(即 \(100 \times \sqrt{2/3}\))。
  • 功率守恒:等功率变换后计算功率与三相瞬时功率完全相等(误差为浮点精度级别);等幅值变换后功率乘以1.5修正系数后同样相等。

通过条件:等功率变换的功率误差小于 \(10^{-10}\),且等幅值变换的 \(u_\alpha\) 等于输入相电压幅值,即验证了两种变换的系数差异与功率修正关系。

Clark变换系数对比 三相系统 u_a, u_b, u_c ×2/3 ×√(2/3) 等幅值Clark u_α = u_peak 等功率Clark u_α = u_peak×√(2/3) 功率计算 P = 1.5×(u_αi_α+u_βi_β) P = u_αi_α+u_βi_β 关键差异: • 等幅值:αβ分量幅值=相幅值,功率需×1.5修正 • 等功率:αβ分量幅值=相幅值×√(2/3),功率直接相等

常见问题

  • 系数记忆:等幅值系数 \(2/3\) 与等功率系数 \(\sqrt{2/3}\) 的比值为 \(\sqrt{3/2}\),这是两种变换相互转换的桥梁。
  • 工程选择:电机控制中常用等幅值变换(便于与相电流比较);功率计算或逆变器功率分析时用等功率变换更直接。
  • 逆变换:等幅值逆变换矩阵系数为1(即正变换矩阵的 \(3/2\) 倍转置);等功率逆变换矩阵即为正变换矩阵的转置。