1. 三相静止坐标系到两相静止坐标系的Clark变换基础实现

任务目标

实现等幅值约束下的Clark变换,将三相静止坐标系电流(ia, ib, ic)映射到两相静止坐标系(iα, iβ),并通过逆变换验证矩阵正确性。等幅值变换矩阵为:

T = (2/3) * [[1, -1/2, -1/2], [0, √3/2, -√3/2]]

核心实现

import numpy as np

def clark_transform(ia, ib, ic):
    """等幅值Clark变换:三相abc -> 两相αβ"""
    alpha = (2/3) * (ia - 0.5*ib - 0.5*ic)
    beta  = (2/3) * ((np.sqrt(3)/2)*ib - (np.sqrt(3)/2)*ic)
    return alpha, beta

def inverse_clark(alpha, beta):
    """等幅值逆变换:两相αβ -> 三相abc(需假设零序分量为0)"""
    ia = alpha
    ib = -0.5*alpha + (np.sqrt(3)/2)*beta
    ic = -0.5*alpha - (np.sqrt(3)/2)*beta
    return ia, ib, ic

# 验证:三相平衡电流(幅值1A,相位0°)
ia, ib, ic = 1.0, -0.5, -0.5
alpha, beta = clark_transform(ia, ib, ic)
ia_r, ib_r, ic_r = inverse_clark(alpha, beta)

print(f"输入: ia={ia}, ib={ib}, ic={ic}")
print(f"Clark输出: iα={alpha:.4f}, iβ={beta:.4f}")
print(f"逆变换还原: ia={ia_r:.4f}, ib={ib_r:.4f}, ic={ic_r:.4f}")
print(f"验证: ia误差={abs(ia_r-ia):.2e}, ib误差={abs(ib_r-ib):.2e}, ic误差={abs(ic_r-ic):.2e}")

运行与验证

环境依赖:Python 3.6+,NumPy(仅用于√3计算,可用math替代)。

运行方式:将代码保存为 clark_transform.py,执行 python clark_transform.py。

验证方法:

  • 输入三相平衡电流(幅值1A,相位差120°),Clark变换后应满足 iα² + iβ² = 1(幅值不变,等幅值约束);
  • 逆变换应还原原始三相电流,误差在浮点精度范围内(<1e-12);
  • 预期输出:iα=1.0000, iβ=0.0000(因ia=1, ib=ic=-0.5时合成矢量恰在α轴),逆变换还原误差为0。

关键说明

等幅值变换的系数2/3保证变换前后电流幅值一致,但功率计算需乘以3/2系数。逆变换公式基于零序分量i0=0的约束(三相无中线系统天然满足),若需处理非平衡系统需补充零序分量。本实现仅验证变换矩阵数学正确性,不涉及具体电机或逆变器工况。

a轴 b轴 c轴 α轴 β轴 ia=1 Clark变换 等幅值变换: 幅值保持1A iα = ia - 0.5(ib+ic) iβ = (√3/2)(ib-ic)