【风电控制】双馈风机网侧高低穿控制策略------从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使能 |
三条箴言:
-
无功优先,有功受限------LVRT期间,电流容量有限,必须优先满足电网的无功支撑需求,有功输出只能"让路"。
-
平滑切换,避免突变------进入/退出穿越状态时,无功电流必须斜坡变化,PI积分项必须清零/缓恢复,否则会引起电压和电流冲击。
-
机网协调,Vdc是命脉------GSC的功率限幅会导致Vdc升高,必须通过机侧降功率+Chopper泄放+电容储能三道防线共同维持Vdc稳定。