这个项目实现的是基于DSOGI-PLL(双二阶广义积分器锁相环)的三电平三相逆变器控制方案,支持SPWM(正弦脉宽调制)和SVPWM(空间矢量脉宽调制)两种调制方式。这类方案在新能源发电、电机驱动、电力电子变压器等领域有广泛应用。
我曾在多个工业级逆变器项目中验证过类似架构,其核心优势在于:
典型的三电平NPC(中性点钳位)逆变器拓扑包含:
关键参数计算公式:
code复制开关频率选择:fsw = 1/(死区时间 + 最小脉宽)
直流母线电压利用率:η = √3/2 (SVPWM) 或 0.5 (SPWM)
控制代码包含以下核心模块:
code复制1. DSOGI-PLL锁相环
- 正交信号生成器
- 频率自适应环路
- 正负序分离单元
2. 三电平调制器
- 矢量扇区判断
- 作用时间计算
- 矢量切换序列生成
3. 保护逻辑
- 过流保护
- 中点电位平衡
- 热管理
DSOGI-PLL通过两个并联的二阶广义积分器实现:
code复制G(s) = kωs / (s² + kωs + ω²)
其中ω为基波角频率,k为阻尼系数(建议取√2)
c复制// 正交信号生成
void DSOGI_Calc(DSOGI *p) {
p->v_alpha = p->k * p->omega * (p->u_alpha - p->v_alpha) / p->omega;
p->v_beta = p->k * p->omega * (p->u_beta - p->v_beta) / p->omega;
p->qv_alpha = p->v_beta;
p->qv_beta = -p->v_alpha;
}
// 频率自适应
void PLL_Update(PLL *p) {
p->error = p->v_alpha * p->qv_beta - p->v_beta * p->qv_alpha;
p->omega += p->ki * p->error;
p->theta += p->omega * p->Ts + p->kp * p->error;
}
关键参数整定经验:
- 带宽取基波频率的1/10~1/5
- 阻尼比ξ=0.707时动态性能最佳
- 采样周期应小于开关周期的1/10
code复制T1 = √3 * Ts * Vref * sin(60° - θ)
T2 = √3 * Ts * Vref * sin(θ)
c复制if (Vdc1 > Vdc2) {
优先选择小矢量P
} else {
优先选择小矢量N
}
c复制// 载波比较法实现
void SPWM_Gen(SPWM *p) {
p->mod_a = p->ma * sin(p->theta);
p->mod_b = p->ma * sin(p->theta - 2*PI/3);
p->mod_c = p->ma * sin(p->theta + 2*PI/3);
// 三电平调制
if (p->tri > p->mod_a) {
PWM_AH = ON; PWM_AL = OFF;
} else if (p->tri > -p->mod_a) {
PWM_AH = OFF; PWM_AL = ON;
} else {
PWM_AH = OFF; PWM_AL = OFF;
}
}
推荐采用预测补偿法:
code复制补偿时间 = 死区时间 × sign(i)
需在电流过零点附近添加滞环比较
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 输出电压畸变 | 死区未补偿 | 增加电流方向检测 |
| 中点电位漂移 | 小矢量分配不均 | 调整平衡系数 |
| PLL失锁 | 电网电压畸变 | 增加前馈补偿 |
硬件接口适配:
性能优化技巧:
实测波形对比:
我在某1MW光伏逆变器项目中的实测数据: