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\) 等于输入相电压幅值,即验证了两种变换的系数差异与功率修正关系。
常见问题
- 系数记忆:等幅值系数 \(2/3\) 与等功率系数 \(\sqrt{2/3}\) 的比值为 \(\sqrt{3/2}\),这是两种变换相互转换的桥梁。
- 工程选择:电机控制中常用等幅值变换(便于与相电流比较);功率计算或逆变器功率分析时用等功率变换更直接。
- 逆变换:等幅值逆变换矩阵系数为1(即正变换矩阵的 \(3/2\) 倍转置);等功率逆变换矩阵即为正变换矩阵的转置。