【风电控制】双馈风机网侧高低穿控制策略——从VrtCal信号处理到状态机逻辑的完整解析

【风电控制】双馈风机网侧高低穿控制策略------从VrtCal信号处理到状态机逻辑的完整解析


一、引言:为什么网侧的电压穿越同样关键?

在前面的文章中,我们详细讨论了机侧(RSC)在LVRT期间的控制策略------磁链阻尼、电流限幅、Crowbar保护等。但DFIG的电压穿越不仅涉及机侧,网侧变流器(GSC)同样承担着关键角色

角色 机侧(RSC) 网侧(GSC)
LVRT期间 控制转子电流,防止过流 输出无功支撑电网电压
HVRT期间 限制转矩,保护轴系 吸收无功抑制过压
贯穿全过程 维持磁链稳定 维持直流母线电压稳定

如果GSC在故障期间无法维持Vdc稳定,直流母线过压会触发Chopper甚至停机,即使RSC的LVRT控制再完美也无法挽救。

本文将从**信号处理(VrtCal模块)状态机(策略切换)**两个层面,完整解析网侧高低穿的控制逻辑。


二、网侧电压穿越的总体架构

复制代码
┌─────────────────────────────────────────────────────────────────┐
│                    网侧电压穿越控制系统                            │
│                                                                 │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐         │
│  │ 信号采集     │    │ VrtCal模块  │    │ 状态机      │         │
│  │             │    │ (信号处理)   │    │ (策略切换)   │         │
│  │ · 电网电压   │───→│ · 正负序分解 │───→│ · Wait     │         │
│  │ · 电流      │    │ · 无功计算   │    │ · Normal   │         │
│  │ · 功率      │    │ · 功率限幅   │    │ · LvrSup   │         │
│  │ · Vdc      │    │ · 状态输出   │    │ · HrtSup   │         │
│  └─────────────┘    └─────────────┘    │ · LvrRoy   │         │
│                                        │ · HrtRoy   │         │
│                                        └──────┬──────┘         │
│                                               │                │
│                                               ▼                │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │                    GSC电流环控制                           │  │
│  │                                                          │  │
│  │  id_ref ← Vdc环PI (有功电流)                              │  │
│  │  iq_ref ← 无功指令 + VrtCal无功增量 (DeltaIqPosRefVRT)   │  │
│  │                                                          │  │
│  │  [电流环PI] → [前馈解耦] → [SVPWM] → GSC → 电网          │  │
│  └──────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘

三、VrtCal模块:信号处理与输出生成

3.1 输入信号解析

VrtCal模块接收以下关键输入信号:

信号名 类型 含义 来源
AI_RSC_VrtSts 模拟量 电网电压状态标志 电压检测模块
AI_App_SysSts 模拟量 系统运行状态 系统状态管理
AI_Alg_VgPos 模拟量 电网电压正序分量 正负序分解模块
AI_Alg_VgNeg 模拟量 电网电压负序分量 正负序分解模块
AI_Dat_ActPwr 模拟量 实际有功功率 功率计算模块

3.2 电压状态检测(VrtSts判断)

VrtSts(Voltage Ride-Through Status)是整个穿越控制的"触发器":

c 复制代码
typedef enum {
    VRT_NORMAL = 0,     // 电网正常
    VRT_LVRT = 1,       // 低电压穿越
    VRT_HVRT = 2,       // 高电压穿越
    VRT_LVRT_RECOVERY = 3,  // 低穿恢复
    VRT_HVRT_RECOVERY = 4   // 高穿恢复
} VrtStatus_t;

VrtStatus_t Detect_VrtStatus(float Vg_pu, float Vg_neg_pu) {
    static VrtStatus_t current_status = VRT_NORMAL;
    
    // 电压幅值 (正序, 标幺值)
    float Vg_pos_pu = Vg_pu;
    
    switch (current_status) {
    case VRT_NORMAL:
        if (Vg_pos_pu < 0.9f) {
            current_status = VRT_LVRT;  // 电压低于90%, 进入低穿
        } else if (Vg_pos_pu > 1.1f) {
            current_status = VRT_HVRT;  // 电压高于110%, 进入高穿
        }
        break;
        
    case VRT_LVRT:
        if (Vg_pos_pu > 0.9f) {
            current_status = VRT_LVRT_RECOVERY;  // 电压恢复
        }
        break;
        
    case VRT_HVRT:
        if (Vg_pos_pu < 1.1f) {
            current_status = VRT_HVRT_RECOVERY;  // 电压恢复
        }
        break;
        
    case VRT_LVRT_RECOVERY:
    case VRT_HVRT_RECOVERY:
        // 延时确认电压稳定后回到Normal
        if (recovery_timer > RECOVERY_TIME) {
            current_status = VRT_NORMAL;
        }
        break;
    }
    
    return current_status;
}

3.3 正负序分解

电网不对称故障时,电压包含正序和负序分量。VrtCal需要分别处理:

复制代码
三相电压 → Clarke变换 → αβ分量 → 正负序分离

正序: Vg_pos = (Vα + jVβ) × e^(-jωt) 的正序部分
负序: Vg_neg = (Vα + jVβ) × e^(+jωt) 的负序部分

正负序分离方法(二阶广义积分器SOGI法):

c 复制代码
typedef struct {
    float alpha;           // SOGI增益
    float omega;           // 基波角频率
    float x1, x2;          // 状态变量
} SOGI_t;

// SOGI正序分离
void SOGI_PosSeq(float Va, float Vb, float Vc, float theta,
                  float *Vg_pos_d, float *Vg_pos_q) {
    // Clark变换
    float V_alpha = (2.0f/3.0f) * (Va - 0.5f*Vb - 0.5f*Vc);
    float V_beta  = (2.0f/3.0f) * (0.866f*Vb - 0.866f*Vc);
    
    // 正序提取 (通过正序Park变换)
    *Vg_pos_d =  V_alpha * cosf(theta) + V_beta * sinf(theta);
    *Vg_pos_q = -V_alpha * sinf(theta) + V_beta * cosf(theta);
    
    // 低通滤波去除2倍频纹波
    // ...
}

3.4 无功参考计算

VrtCal的核心输出是无功电流参考增量(DeltaIqPosRefVRT),用于支撑电网电压:

GB/T 19964标准要求

电压跌落深度 最小无功电流要求
V > 0.9 pu 无要求
0.5 < V ≤ 0.9 pu i q ≥ 1.5 × ( 0.9 − V ) × I N i_q \geq 1.5 \times (0.9 - V) \times I_N iq≥1.5×(0.9−V)×IN
V ≤ 0.5 pu i q ≥ 0.6 × I N i_q \geq 0.6 \times I_N iq≥0.6×IN
c 复制代码
// LVRT无功电流计算 (符合GB/T 19964)
float Calc_LVRT_ReactiveCurrent(float Vg_pos_pu) {
    float iq_required = 0;
    
    if (Vg_pos_pu < 0.5f) {
        iq_required = 0.6f * I_rated;  // 深度跌落: 至少60%额定无功
    } else if (Vg_pos_pu < 0.9f) {
        iq_required = 1.5f * (0.9f - Vg_pos_pu) * I_rated;
    }
    
    return iq_required;
}

// HVRT无功电流计算
float Calc_HVRT_ReactiveCurrent(float Vg_pos_pu) {
    float iq_required = 0;
    
    if (Vg_pos_pu > 1.1f) {
        // 高穿: 吸收无功, 抑制过压
        iq_required = -1.5f * (Vg_pos_pu - 1.1f) * I_rated;
        iq_required = fmaxf(iq_required, -0.6f * I_rated);  // 上限
    }
    
    return iq_required;
}

3.5 功率限幅

故障期间,变流器的电流容量有限,有功和无功需要"争抢"电流预算:

复制代码
电流容量约束: id² + iq² ≤ I_max²

正常运行: id = I_max (全部用于有功), iq = 0

LVRT期间: iq = Iq_required (无功优先)
          id = sqrt(I_max² - iq²) (有功受限)

         iq ↑
            │   ╱
        I_max│  ╱  电流极限圆
            │ ╱
            │╱__________→ id
            0          I_max

无功优先: iq固定 → id被挤压 → 有功受限 → Vdc波动 → Chopper动作
c 复制代码
// 功率限幅 (无功优先)
void PowerLimit_VRT(float iq_ref_vrt, float I_max,
                    float *id_max, float *iq_actual) {
    // 无功优先: 先满足无功需求
    *iq_actual = fminf(fabsf(iq_ref_vrt), I_max * 0.95f);
    if (iq_ref_vrt < 0) *iq_actual = -*iq_actual;  // 保持方向
    
    // 剩余容量给有功
    float i_budget = sqrtf(I_max * I_max - (*iq_actual) * (*iq_actual));
    *id_max = i_budget;
}

// VrtPLmt输出: 功率限制标幺值
float Calc_VrtPLmt(float id_max, float I_rated, float Vg_pos_pu) {
    float P_max_pu = (id_max / I_rated) * Vg_pos_pu;
    return P_max_pu;
}

3.6 VrtCal模块输出汇总

输出信号 含义 用途
DO_Alg_VrtPwm GSC的PWM控制信号 驱动变流器
AO_Alg_VrtSts 电压穿越状态 状态指示/录波
AO_Alg_DeltaIqPosRefVRT 正序无功电流增量 GSC电流环iq_ref叠加
AO_Alg_DeltaIqNegRefVRT 负序无功电流增量 抑制负序电流
AO_Alg_VrtPLmt 功率限制标幺值 限制有功输出

四、状态机:故障策略切换

4.1 状态定义

复制代码
状态转移图:

                    电压跌落(V<0.9pu)
    ┌────────┐ ───────────────────→ ┌────────┐
    │ Normal │                      │ LvrSup │
    │ (正常)  │ ←─────────────────── │(低穿支撑)│
    └────────┘    电压恢复+延时       └────┬───┘
         ↑                                │
         │         电压恢复               │
         │    ┌───────────────────────────┘
         │    ▼
         │ ┌────────┐
         └─│ LvrRoy │
           │(低穿恢复)│
           └────────┘

                    电压抬升(V>1.1pu)
    ┌────────┐ ───────────────────→ ┌────────┐
    │ Normal │                      │ HrtSup │
    │ (正常)  │ ←─────────────────── │(高穿支撑)│
    └────────┘    电压恢复+延时       └────┬───┘
         ↑                                │
         │         电压恢复               │
         │    ┌───────────────────────────┘
         │    ▼
         │ ┌────────┐
         └─│ HrtRoy │
           │(高穿恢复)│
           └────────┘

所有状态 → ┌────────┐
(严重故障)  │  Wait  │ (等待/保护)
            └────────┘

4.2 各状态详细逻辑

Normal(正常运行)
复制代码
输入: Vg_pos_pu ∈ [0.9, 1.1]
输出: 
  · DeltaIqPosRefVRT = 0 (无额外无功)
  · DeltaIqNegRefVRT = 0 (无负序补偿)
  · VrtPLmt = 1.0 (不限功率)
  
控制策略:
  · GSC: Vdc环 → id_ref (有功)
  · GSC: iq_ref = 0 (单位功率因数) 或 由上位机给定
LvrSup(低穿支撑)
复制代码
输入: Vg_pos_pu < 0.9
输出:
  · DeltaIqPosRefVRT = 1.5×(0.9-Vg)×I_N (正序无功注入)
  · DeltaIqNegRefVRT = 负序抑制电流 (不对称故障时)
  · VrtPLmt = sqrt(I_max² - iq²) / I_N (功率限制)

控制策略:
  · GSC: iq_ref = DeltaIqPosRefVRT (无功优先)
  · GSC: id_ref = min(Vdc环输出, VrtPLmt×I_N) (有功受限)
  · DC-Chopper: 如果Vdc > 1.1×Vdc_rated, 泄放多余能量

进入LvrSup时的平滑切换(Bumpless Transfer):

c 复制代码
void Enter_LvrSup(float iq_target) {
    // 清除Vdc环PI的积分项 (防止积分风暴)
    pi_vdc.integral = 0;
    
    // 缓慢增加无功电流 (避免突变)
    float iq_ramp_rate = 0.1f * I_rated;  // 每秒10%额定电流
    iq_ref_gsc = Ramp(iq_ref_gsc, iq_target, iq_ramp_rate, Ts);
    
    // 限制有功电流变化率
    id_ref_gsc = fminf(id_ref_gsc, VrtPLmt * I_rated);
}
HrtSup(高穿支撑)
复制代码
输入: Vg_pos_pu > 1.1
输出:
  · DeltaIqPosRefVRT = -1.5×(Vg-1.1)×I_N (吸收无功, 负值)
  · DeltaIqNegRefVRT = 负序抑制电流
  · VrtPLmt = 有功限制

控制策略:
  · GSC: iq_ref = DeltaIqPosRefVRT (吸收无功, 抑制过压)
  · GSC: id_ref 受限 (有功受限)
  · 如果Vdc过高: 降低机侧有功输出

高穿的特殊挑战

挑战 原因 对策
Vdc过高 电网电压升高 → 整流后Vdc升高 增大无功吸收 → 降低GSC有功 → Chopper泄放
IGBT过压 Vdc可能超过IGBT耐压 限制Vdc上限,必要时脱网
过调制 电网电压升高 → GSC需要更高的直流电压 提高Vdc或降低调制度
LvrRoy / HrtRoy(恢复阶段)
复制代码
触发条件: 电压回到正常范围 [0.9, 1.1] pu
输出:
  · DeltaIqPosRefVRT: 从当前值缓慢减小到0
  · VrtPLmt: 从受限值缓慢恢复到1.0
  
控制策略:
  · 无功电流斜坡下降 (避免电压再次跌落)
  · 有功电流斜坡上升 (恢复功率输出)
  · Vdc环PI积分项缓慢恢复
c 复制代码
void Recovery_Ramp(float *iq_ref, float *id_ref, float *VrtPLmt,
                   float iq_target, float id_target, float PLmt_target,
                   float ramp_rate, float Ts) {
    // 无功电流斜坡恢复
    *iq_ref = Ramp(*iq_ref, iq_target, ramp_rate, Ts);
    
    // 有功电流斜坡恢复
    *id_ref = Ramp(*id_ref, id_target, ramp_rate, Ts);
    
    // 功率限幅斜坡恢复
    *VrtPLmt = Ramp(*VrtPLmt, PLmt_target, ramp_rate * 0.5f, Ts);
}

// 通用斜坡函数
float Ramp(float current, float target, float rate, float Ts) {
    float step = rate * Ts;
    if (target > current) {
        return fminf(current + step, target);
    } else {
        return fmaxf(current - step, target);
    }
}
Wait(等待/保护)
复制代码
触发条件: 严重故障 (如电压<0.1pu或>1.3pu, 或持续时间超限)
输出:
  · 封锁PWM或降低功率到最小
  · 等待故障消除后重新并网

4.3 状态机完整实现

c 复制代码
typedef struct {
    VrtStatus_t state;
    float recovery_timer;
    float iq_ref_vrt;
    float VrtPLmt;
    
    // 参数
    float V_lrt_threshold;     // 低穿阈值 (0.9pu)
    float V_hrt_threshold;     // 高穿阈值 (1.1pu)
    float recovery_time;       // 恢复确认时间 (100ms)
    float ramp_rate;           // 斜坡速率 (pu/s)
    
    // PI控制器 (Vdc环)
    PI_t pi_vdc;
} VrtStateMachine_t;

void VrtStateMachine_Update(VrtStateMachine_t *sm, 
                             float Vg_pos_pu, float Vg_neg_pu,
                             float I_max, float I_rated,
                             float Vdc, float Vdc_ref,
                             float Ts) {
    // 状态转移判断
    switch (sm->state) {
    
    case VRT_NORMAL:
        // 正常运行: Vdc环控制有功, 无额外无功
        sm->iq_ref_vrt = 0;
        sm->VrtPLmt = 1.0f;
        
        if (Vg_pos_pu < sm->V_lrt_threshold) {
            sm->state = VRT_LVRT;
            sm->pi_vdc.integral = 0;  // 清积分项
            sm->recovery_timer = 0;
        } else if (Vg_pos_pu > sm->V_hrt_threshold) {
            sm->state = VRT_HVRT;
            sm->pi_vdc.integral = 0;
            sm->recovery_timer = 0;
        }
        break;
        
    case VRT_LVRT:
        // 低穿支撑: 无功优先, 有功受限
        {
            float iq_required = Calc_LVRT_ReactiveCurrent(Vg_pos_pu);
            sm->iq_ref_vrt = Ramp(sm->iq_ref_vrt, iq_required, 
                                   sm->ramp_rate, Ts);
            
            float id_max;
            float iq_actual;
            PowerLimit_VRT(sm->iq_ref_vrt, I_max, &id_max, &iq_actual);
            sm->VrtPLmt = id_max / I_rated;
        }
        
        // 检查恢复条件
        if (Vg_pos_pu > sm->V_lrt_threshold) {
            sm->state = VRT_LVRT_RECOVERY;
            sm->recovery_timer = 0;
        }
        break;
        
    case VRT_HVRT:
        // 高穿支撑: 吸收无功, 有功受限
        {
            float iq_required = Calc_HVRT_ReactiveCurrent(Vg_pos_pu);
            sm->iq_ref_vrt = Ramp(sm->iq_ref_vrt, iq_required,
                                   sm->ramp_rate, Ts);
            
            float id_max;
            float iq_actual;
            PowerLimit_VRT(sm->iq_ref_vrt, I_max, &id_max, &iq_actual);
            sm->VrtPLmt = id_max / I_rated;
        }
        
        if (Vg_pos_pu < sm->V_hrt_threshold) {
            sm->state = VRT_HVRT_RECOVERY;
            sm->recovery_timer = 0;
        }
        break;
        
    case VRT_LVRT_RECOVERY:
    case VRT_HVRT_RECOVERY:
        // 恢复阶段: 缓慢退出支撑
        sm->iq_ref_vrt = Ramp(sm->iq_ref_vrt, 0, sm->ramp_rate, Ts);
        sm->VrtPLmt = Ramp(sm->VrtPLmt, 1.0f, sm->ramp_rate * 0.5f, Ts);
        
        sm->recovery_timer += Ts;
        if (sm->recovery_timer > sm->recovery_time 
            && fabsf(sm->iq_ref_vrt) < 0.01f * I_rated) {
            sm->state = VRT_NORMAL;
        }
        
        // 如果恢复期间电压再次异常, 回到支撑状态
        if (Vg_pos_pu < sm->V_lrt_threshold) {
            sm->state = VRT_LVRT;
        } else if (Vg_pos_pu > sm->V_hrt_threshold) {
            sm->state = VRT_HVRT;
        }
        break;
        
    case VRT_WAIT:
        // 等待/保护: 不输出功率, 等待人工复位
        sm->iq_ref_vrt = 0;
        sm->VrtPLmt = 0;
        break;
    }
}

五、网侧电流环的集成

5.1 电流指令的合成

VrtCal的输出需要叠加到GSC的电流环指令上:

c 复制代码
void GSC_CurrentReference_Update(VrtStateMachine_t *vrt,
                                  float Vdc, float Vdc_ref,
                                  float I_max_gsc, float I_rated_gsc) {
    // ---- 有功电流 (d轴) ----
    // 正常: Vdc环PI输出
    float id_ref_normal = PI_Update(&pi_vdc, Vdc_ref - Vdc);
    
    // 故障期间: 受功率限制
    float id_ref = fminf(id_ref_normal, vrt->VrtPLmt * I_rated_gsc);
    id_ref = fmaxf(id_ref, -vrt->VrtPLmt * I_rated_gsc);  // 允许负有功
    
    // ---- 无功电流 (q轴) ----
    // 正常: 由上位机给定 (通常为0, 单位功率因数)
    float iq_ref_normal = Q_ref / (1.5f * fmaxf(Vg_pu, 0.1f) * V_rated);
    
    // 故障期间: VrtCal的无功增量
    float iq_ref = iq_ref_normal + vrt->iq_ref_vrt;
    
    // ---- 电流限幅 ----
    float i_total = sqrtf(id_ref * id_ref + iq_ref * iq_ref);
    if (i_total > I_max_gsc * 0.95f) {
        float scale = I_max_gsc * 0.95f / i_total;
        id_ref *= scale;
        iq_ref *= scale;
    }
    
    // 输出到电流环
    id_ref_gsc = id_ref;
    iq_ref_gsc = iq_ref;
}

5.2 完整的GSC控制流程图

复制代码
时间轴: ──────────────────────────────────────────────────►

Normal阶段:
  Vdc_ref ──→ [Vdc环PI] ──→ id_ref (有功)
  iq_ref = 0 (单位功率因数)
  VrtPLmt = 1.0
  
       ↓ 电压跌落事件 (t = t_fault)

LvrSup阶段 (t_fault → t_recovery):
  iq_ref_vrt = 1.5×(0.9-Vg)×I_N ──→ iq_ref (无功优先)
  id_ref = min(Vdc环输出, VrtPLmt×I_N) (有功受限)
  Vdc → 升高(有功注入减少) → Chopper动作
  
       ↓ 电压恢复事件 (t = t_recovery)

LvrRoy阶段 (t_recovery → t_normal):
  iq_ref_vrt: 斜坡下降 → 0
  id_ref: 斜坡上升 → 恢复正常
  Vdc: 逐步恢复到额定值
  
       ↓ 确认恢复完成

Normal阶段:
  iq_ref = 0
  id_ref = Vdc环PI输出
  系统恢复正常运行

六、关键工程问题

6.1 LVRT期间直流母线电压控制

LVRT期间,机侧功率注入不变,但网侧因为电流限幅导致输出功率减少,功率不平衡导致Vdc升高

复制代码
功率平衡方程:

P_in (机侧注入) - P_out (网侧输出) = C × Vdc × dVdc/dt

LVRT期间:
  P_in ≈ 不变 (机侧仍在发电)
  P_out ↓↓ (网侧电流受限, 有功输出减少)
  → P_unbalance > 0 → Vdc上升!

对策:
  1. 限制机侧有功输出 (降低转矩指令)
  2. DC-Chopper泄放多余能量
  3. 利用直流母线电容储能 (短暂过压)
c 复制代码
// LVRT期间的机网侧协调
void VRT_PowerBalance(float P_rsc, float P_gsc_max, float Vdc, 
                       float Vdc_rated, float Ts) {
    float P_unbalance = P_rsc - P_gsc_max;
    
    // 策略1: 如果Vdc上升过快, 降低机侧功率
    if (Vdc > 1.05f * Vdc_rated) {
        // 发送指令给机侧: 降低转矩
        torque_ref = fmaxf(torque_ref - torque_ramp * Ts, 0);
    }
    
    // 策略2: 如果Vdc仍高, 启动Chopper
    if (Vdc > 1.1f * Vdc_rated) {
        Chopper_Enable();
    } else if (Vdc < 1.05f * Vdc_rated) {
        Chopper_Disable();
    }
    
    // 策略3: 紧急保护
    if (Vdc > 1.25f * Vdc_rated) {
        Emergency_Stop();  // 脱网保护
    }
}

6.2 不对称故障的负序处理

不对称故障(如单相接地)时,电网电压包含负序分量,导致:

  • 2倍频功率脉动
  • 直流母线电压2倍频纹波
  • 电流不对称

负序电流抑制

c 复制代码
// 负序电流抑制 (在负序dq坐标系下)
void NegativeSeq_Suppression(float ig_neg_d, float ig_neg_q,
                              float *Vgsc_neg_d, float *Vgsc_neg_q) {
    // 负序电流环: 将负序电流抑制到零
    *Vgsc_neg_d = PI_Update(&pi_neg_d, 0 - ig_neg_d);
    *Vgsc_neg_q = PI_Update(&pi_neg_q, 0 - ig_neg_q);
    
    // 或者: 注入特定的负序电流以抑制功率脉动
    // (需要更复杂的算法)
}

6.3 恢复阶段的"二次跌落"风险

如果在恢复阶段电压再次跌落,需要立即回到LVRT支撑状态,而不是继续恢复:

c 复制代码
// 在恢复阶段检测二次跌落
case VRT_LVRT_RECOVERY:
    // ... 正常恢复逻辑 ...
    
    // 关键: 检测二次跌落
    if (Vg_pos_pu < sm->V_lrt_threshold) {
        sm->state = VRT_LVRT;
        sm->pi_vdc.integral = 0;  // 重新清积分
        // iq_ref_vrt 保持当前值, 立即增加到新的目标值
    }
    break;

七、时序图:完整的高低穿过程

复制代码
电网电压 (pu):
1.2 ┤                    ┌──────────┐
    │                    │  HVRT    │
1.1 ┤─ ─ ─ ─ ─ ─ ─ ─ ─ ─│─ ─ ─ ─ ─│─ ─ ─ ─ ─ ─ ─ ─ ← 高穿阈值
1.0 ┤━━━━━━━━━━━┓        │          │        ┏━━━━━━━━
    │           ┃        │          │        ┃
0.9 ┤─ ─ ─ ─ ─ ┃─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┃─ ─ ─ ─ ← 低穿阈值
    │           ┃        │          │        ┃
0.5 ┤           ┃        │          │        ┃
    │           ┗━━━━━━━━┛          ┗━━━━━━━━┛
0.0 ┤
    └────┬─────┬─────┬─────┬─────┬─────┬─────┬─────→ t
         │     │     │     │     │     │     │
        Normal LvrSup LvrRoy Normal HrtSup HrtRoy Normal

状态机:
    Normal → LvrSup → LvrRoy → Normal → HrtSup → HrtRoy → Normal

无功电流 iq_ref_vrt:
    0 ┤━━━━━━━┓                 ┏━━━━━━━━━━━━━━━━━━━
      │       ┃                 ┃
      │       ┃                 ┃
      │       ┗━━━━━━━━━━━━━━━━┛    HRT: 吸收无功(负)
      │       
      │       ┏━━━━━━━━━━━━━━━━
      │       ┃                 ┃
      │       ┃                 ┃
      │       ┃                 ┗━━━━━━━━━━━━━━━━━━━
    0 ┤━━━━━━━┛    LRT: 注入无功(正)

有功电流 id_ref:
    I_N ┤━━━━━━━┓                              ┏━━━━━━
        │       ┃                              ┃
        │       ┃                              ┃
        │       ┗━━━━━━━━┓            ┏━━━━━━━┛
        │                ┃            ┃
    0.2N┤                ┗━━━━━━━━━━━━┛  有功受限

Vdc:
1.25Vdc┤                  ┌─┐
       │                  │ │
1.1Vdc ┤─ ─ ─ ─ ─ ─ ─ ─ ─│─│─ ─ ─ ─ ─ ─ ─ ─ ─ ← Chopper动作
       │         ┌────────┘ └────────┐
1.0Vdc ┤━━━━━━━━━┛                    ┗━━━━━━━━━━━
       │
       └────┬─────┬─────┬─────┬─────┬─────┬─────→ t

八、总结

模块 功能 核心输出
VrtCal 信号处理:正负序分解、无功计算、功率限幅 DeltaIqPosRefVRT, VrtPLmt
状态机 策略切换:Normal↔LvrSup↔LvrRoy, Normal↔HrtSup↔HrtRoy 状态标志
电流环 执行:合成id_ref和iq_ref,PI+SVPWM PWM驱动信号
功率协调 机网侧平衡:限制机侧功率、Chopper泄放 转矩限制、Chopper使能

三条箴言

  1. 无功优先,有功受限------LVRT期间,电流容量有限,必须优先满足电网的无功支撑需求,有功输出只能"让路"。

  2. 平滑切换,避免突变------进入/退出穿越状态时,无功电流必须斜坡变化,PI积分项必须清零/缓恢复,否则会引起电压和电流冲击。

  3. 机网协调,Vdc是命脉------GSC的功率限幅会导致Vdc升高,必须通过机侧降功率+Chopper泄放+电容储能三道防线共同维持Vdc稳定。

相关推荐
下午写HelloWorld1 小时前
同态加密(Homomorphic Encryption, HE)
人工智能·算法·密码学·同态加密
CC数学建模1 小时前
2026第八届中青杯全国大学生数学建模竞赛B题:AI生成内容的质量评估与参数优化完整思路、代码、模型、文章,全网首发高质量分享!
python·算法·数学建模
sheeta19981 小时前
LeetCode 每日一题笔记 日期:2026.06.04 题目:3751. 范围内总波动值 I
笔记·算法·leetcode
lightqjx1 小时前
【算法】数据结构_单调栈
数据结构·算法·单调栈
Promise微笑1 小时前
洞察无形:红外热像仪应用场景与高性价比之选
人工智能·物联网·算法
8Qi81 小时前
LeetCode 746:使用最小花费爬楼梯 —— 题解笔记
java·笔记·算法·leetcode·动态规划
pipo2 小时前
没雷达也能调 Nav2?我开源了一套仿真到实机复用的 ROS 2 3D LiDAR 导航工作空间
算法
计算机安禾2 小时前
【算法分析与设计】第44篇:随机化复杂度类:RP、BPP与去随机化猜想
java·数据结构·数据库·算法·机器学习
计算机安禾2 小时前
【算法分析与设计】第45篇:交互式证明系统与零知识证明
算法·区块链·零知识证明