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的约束(三相无中线系统天然满足),若需处理非平衡系统需补充零序分量。本实现仅验证变换矩阵数学正确性,不涉及具体电机或逆变器工况。