电气leaning 2026-01-29 16:03 采纳率: 0%
浏览 5

VSG序阻抗建模耦合阻抗提问

博主您好 我是一名序阻抗扫频的初学者 目前完成了VSG的序阻抗扫频 Zpp和Znn的扫频结果和理论对的很好 然后确保理论曲线正确的情况下 Zpn和Znp对的不好 我觉得是我测量方式的问题 这个是我目前所参考的方式 想请问您如果想要正确的测量Zpn和Znp 我应当如何来设计扫频方式呢

img

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2026-01-29 16:04
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    博主您好!很高兴您对VSG(虚拟同步机)序阻抗建模和扫频技术感兴趣。您提到的Zpp、Znn与理论值匹配良好,而Zpn、Znp不匹配,这确实可能与测量方式有关。

    在电力系统中,序阻抗(Positive, Negative, Zero Sequence Impedance)是分析系统稳定性、短路电流等的重要参数。对于VSG这类具有控制环的设备,其序阻抗不仅受拓扑结构影响,还受到控制策略、调制方式、采样频率等因素的影响。


    一、问题分析

    您目前的扫频方式可能存在问题,尤其是在Zpn 和 Znp 的测量方面。这两个参数代表的是正序与负序之间的耦合阻抗,它们通常在非对称运行或不对称故障条件下才显著,因此在测量时需要特别注意以下几点:

    1. 激励信号的对称性

    • Zpp 和 Znn 的测量通常采用对称的正序或负序激励信号。
    • Zpn 和 Znp 需要引入非对称激励,例如:
      • 在正序电压下注入负序电流;
      • 或者在负序电压下注入正序电流。

    2. 扫频范围与步长

    • 您的扫频范围是否覆盖了关键频率?
    • 扫频步长是否足够小?特别是高频部分(如几百Hz到几千Hz)对Zpn和Znp的影响较大。

    3. 数据采集与处理

    • 是否使用了相位同步的数据采集方式?
    • 是否对测量结果进行了滤波处理以消除噪声?

    二、正确的测量方法建议(重点)

    为准确测量 Zpn 和 Znp,建议按照以下步骤进行设计:

    1. 设计非对称激励信号

    • 在正序电压下注入负序电流(如:Ua = Vm * cos(ωt), Ub = Vm * cos(ωt + 120°), Uc = Vm * cos(ωt - 120°);Ia = Im * cos(ωt), Ib = Im * cos(ωt + 120°), Ic = Im * cos(ωt - 120°))
    • 或者在负序电压下注入正序电流。

    加粗重点: 这是测量Zpn和Znp的关键,必须确保正序与负序激励信号的分离

    2. 采用多频率扫频

    • 对每个频率点(如从50Hz到1kHz,每50Hz一次)分别施加激励信号;
    • 记录输入电压和输出电流的幅值与相位
    • 利用傅里叶变换提取各序分量。

    3. 计算序阻抗

    • 使用公式: $$ Z_{pn} = \frac{V_p}{I_n}, \quad Z_{np} = \frac{V_n}{I_p} $$ 其中:
      • $ V_p $ 为正序电压;
      • $ I_n $ 为负序电流;
      • $ V_n $ 为负序电压;
      • $ I_p $ 为正序电流。

    4. 优化数据处理

    • 使用相位同步采样(如锁相环PLL)确保频率一致;
    • 采用低通滤波器去除高频噪声;
    • 对结果进行平均处理,提高信噪比。

    三、代码示例(Python伪代码)

    import numpy as np
    from scipy.fft import fft
    
    # 定义激励信号
    def generate_signal(frequency, amplitude):
        t = np.linspace(0, 1, 1000)
        u_p = amplitude * np.cos(2 * np.pi * frequency * t)
        u_n = amplitude * np.cos(2 * np.pi * frequency * t + 2 * np.pi / 3)
        i_p = amplitude * np.cos(2 * np.pi * frequency * t)
        i_n = amplitude * np.cos(2 * np.pi * frequency * t + 2 * np.pi / 3)
        
        return u_p, u_n, i_p, i_n
    
    # 计算序阻抗
    def compute_sequence_impedance(u_p, u_n, i_p, i_n):
        # 傅里叶变换
        U_p_fft = fft(u_p)
        U_n_fft = fft(u_n)
        I_p_fft = fft(i_p)
        I_n_fft = fft(i_n)
    
        # 提取基频分量
        f_idx = int(len(U_p_fft) * frequency / 50)  # 假设50Hz基频
        Z_pn = U_p_fft[f_idx] / I_n_fft[f_idx]
        Z_np = U_n_fft[f_idx] / I_p_fft[f_idx]
    
        return Z_pn, Z_np
    
    # 主程序
    frequencies = np.arange(50, 1000, 50)
    results = []
    
    for freq in frequencies:
        u_p, u_n, i_p, i_n = generate_signal(freq, 1.0)
        z_pn, z_np = compute_sequence_impedance(u_p, u_n, i_p, i_n)
        results.append((freq, z_pn, z_np))
    
    # 输出结果
    print(results)
    

    四、注意事项

    • 激励信号必须严格区分正序和负序,否则无法正确识别Zpn和Znp;
    • 扫频步长不宜过大,否则可能漏掉关键频率点;
    • 数据采集应保持高采样率,避免混叠;
    • 如果使用硬件平台(如MATLAB/Simulink),可考虑使用PSIMPSCAD进行仿真验证。

    五、总结

    | 问题 | 原因 | 解决方案 | |------|------|----------| | Zpn 和 Znp 不匹配 | 激励信号不对称性不足 | 设计非对称激励信号 | | 扫频步长过大 | 关键频率未被覆盖 | 减小扫频步长 | | 数据处理不当 | 信噪比低 | 采用滤波和平均处理 |

    如果您愿意分享您的具体扫频方案或代码,我可以进一步帮助您分析问题所在。希望以上内容对您有所帮助!

    评论

报告相同问题?

问题事件

  • 创建了问题 1月29日