1. 三相光伏并网系统概述
光伏并网系统作为可再生能源利用的重要方式,其核心目标是将太阳能高效转换为电能并安全接入电网。三相并网系统相比单相系统具有功率密度高、电流纹波小、电网冲击小等显著优势,特别适合中大型光伏电站应用。
在实际工程中,一个完整的三相光伏并网系统通常包含以下几个关键部分:光伏阵列、DC-DC升压变换器(Boost)、三相逆变器以及并网控制单元。系统工作时,光伏阵列输出的直流电首先经过Boost变换器升压,然后通过三相逆变器转换为交流电,最后经过滤波和同步控制并入电网。
提示:系统设计时需要特别注意各环节的电压匹配问题。光伏阵列的输出电压范围、Boost变换器的升压能力、逆变器的直流输入电压要求以及电网电压等级之间必须建立合理的匹配关系。
2. 系统硬件架构设计
2.1 Boost变换器设计与实现
Boost变换器作为电压提升的关键环节,其设计直接影响整个系统的效率。典型的Boost电路由功率开关管(如MOSFET)、储能电感、输出电容和续流二极管组成。设计时需要重点考虑以下几个参数:
-
电感值计算:
code复制L = (Vin × D) / (ΔIL × fs)其中Vin为输入电压,D为占空比,ΔIL为电感电流纹波,fs为开关频率。通常选择纹波电流为输入电流的20%-30%。
-
输出电容选择:
code复制C = (Iout × D) / (ΔVout × fs)Iout为输出电流,ΔVout为允许的输出电压纹波。
-
开关管选型:需考虑最大电压应力(至少为输出电压的1.2倍)和电流应力(峰值电流的1.5倍)。
在实际调试中,我们发现采用SiC MOSFET相比传统硅基MOSFET能显著降低开关损耗,特别是在高频应用中。以下是基于STM32的PWM控制代码示例:
c复制// 初始化TIM1 PWM输出
void PWM_Init(void) {
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
// 定时器基础配置
TIM_TimeBaseStructure.TIM_Period = 999; // 10kHz PWM
TIM_TimeBaseStructure.TIM_Prescaler = 71; // 72MHz/72=1MHz
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
// PWM模式配置
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 300; // 初始占空比30%
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC1Init(TIM1, &TIM_OCInitStructure);
TIM_CtrlPWMOutputs(TIM1, ENABLE);
TIM_Cmd(TIM1, ENABLE);
}
2.2 三相逆变器设计要点
三相逆变器通常采用全桥拓扑结构,由六个功率开关管组成。设计时需要特别注意:
-
死区时间设置:必须确保同一桥臂上下管不会同时导通,一般设置2-4μs的死区时间。
-
调制方式选择:常用SPWM或SVPWM。SVPWM具有更高的直流电压利用率(比SPWM高15%),但算法更复杂。
-
散热设计:开关管损耗主要包括导通损耗和开关损耗,需要根据损耗计算散热器规格。
以下是基于STM32的SVPWM实现代码片段:
c复制void SVPWM_Update(float Ualpha, float Ubeta) {
// 扇区判断
int sector = 0;
if(Ubeta > 0) sector += 1;
if(-0.5*Ubeta + 0.866*Ualpha > 0) sector += 2;
if(-0.5*Ubeta - 0.866*Ualpha > 0) sector += 4;
// 计算作用时间
float T1, T2;
switch(sector) {
case 1: // 扇区I
T1 = (sqrt(3)*Ts/Udc)*(Ualpha - Ubeta/sqrt(3));
T2 = (sqrt(3)*Ts/Udc)*(2*Ubeta/sqrt(3));
break;
// 其他扇区计算...
}
// 设置PWM占空比
TIM1->CCR1 = (uint32_t)((Ts - T1 - T2)/4);
TIM1->CCR2 = (uint32_t)((Ts - T1 - T2)/4 + T1/2);
TIM1->CCR3 = (uint32_t)((Ts - T1 - T2)/4 + T1/2 + T2/2);
}
3. 核心控制策略实现
3.1 PLL锁相环设计
数字锁相环(DPLL)的实现通常包含三个主要环节:鉴相器(PD)、环路滤波器(LF)和压控振荡器(VCO)。在并网应用中,常用基于同步参考坐标系(SRF)的PLL。
具体实现步骤:
- 采集电网三相电压并转换为αβ坐标系
- 通过Park变换转换为dq坐标系
- 调节q轴电压为零,使d轴与电网电压矢量对齐
- 通过PI调节器控制频率和相位
以下是基于STM32的PLL核心代码:
c复制typedef struct {
float alpha; // α轴分量
float beta; // β轴分量
float d; // d轴分量
float q; // q轴分量
float theta; // 相位角
float freq; // 频率
float kp; // 比例系数
float ki; // 积分系数
float i_sum; // 积分累加
} PLL_TypeDef;
void PLL_Update(PLL_TypeDef *pll, float va, float vb, float vc) {
// Clarke变换
pll->alpha = 0.6667f * (va - 0.5f*vb - 0.5f*vc);
pll->beta = 0.5774f * (vb - vc);
// Park变换
pll->d = pll->alpha * arm_cos_f32(pll->theta) + pll->beta * arm_sin_f32(pll->theta);
pll->q = -pll->alpha * arm_sin_f32(pll->theta) + pll->beta * arm_cos_f32(pll->theta);
// PI调节
float error = -pll->q; // 目标q=0
pll->i_sum += pll->ki * error;
float delta_theta = pll->kp * error + pll->i_sum;
// 更新相位和频率
pll->theta += delta_theta;
if(pll->theta > 6.283185f) pll->theta -= 6.283185f;
pll->freq = delta_theta * 50.0f / 6.283185f + 50.0f; // 假设基频50Hz
}
3.2 MPPT控制实现
扰动观察法(P&O)虽然简单,但在实际应用中需要注意以下几点:
- 扰动步长选择:步长过大会导致稳态振荡大,步长过小则响应慢
- 采样周期:需要远大于光伏板的响应时间(通常100ms左右)
- 天气突变处理:需要增加特殊判断逻辑防止误动作
改进型P&O算法实现:
c复制typedef struct {
float Vpv; // 光伏电压
float Ipv; // 光伏电流
float Ppv; // 光伏功率
float Vref; // 参考电压
float dV; // 扰动步长
float dP_th; // 功率变化阈值
uint8_t dir; // 扰动方向
} MPPT_TypeDef;
void MPPT_Update(MPPT_TypeDef *mppt) {
float Pnew = mppt->Vpv * mppt->Ipv;
float dP = Pnew - mppt->Ppv;
if(fabs(dP) > mppt->dP_th) { // 显著变化
if(dP > 0) {
mppt->Vref += (mppt->dir)? mppt->dV : -mppt->dV;
} else {
mppt->Vref -= (mppt->dir)? mppt->dV : -mppt->dV;
mppt->dir = !mppt->dir;
}
} else { // 微小变化
mppt->Vref += (mppt->dir)? mppt->dV : -mppt->dV;
}
mppt->Ppv = Pnew;
}
4. 并网控制策略详解
4.1 dq解耦控制实现
dq解耦控制的关键在于将三相交流量转换为旋转坐标系下的直流量,实现有功和无功的独立控制。具体实现步骤:
- 采集三相并网电流ia、ib、ic
- 通过Clark变换得到iα、iβ
- 通过Park变换得到id、iq
- 分别对id、iq进行PI调节
- 反Park变换得到vα、vβ
- 通过SVPWM生成驱动信号
以下是dq解耦控制的代码实现:
c复制typedef struct {
float id; // d轴电流
float iq; // q轴电流
float vd; // d轴电压
float vq; // q轴电压
float id_ref; // d轴电流参考
float iq_ref; // q轴电流参考
float kp; // 比例系数
float ki; // 积分系数
float i_sum_d; // d轴积分累加
float i_sum_q; // q轴积分累加
} DQ_TypeDef;
void DQ_Control_Update(DQ_TypeDef *dq, float ia, float ib, float ic, float theta) {
// Clark变换
float ialpha = 0.6667f * (ia - 0.5f*ib - 0.5f*ic);
float ibeta = 0.5774f * (ib - ic);
// Park变换
dq->id = ialpha * arm_cos_f32(theta) + ibeta * arm_sin_f32(theta);
dq->iq = -ialpha * arm_sin_f32(theta) + ibeta * arm_cos_f32(theta);
// PI调节
float err_d = dq->id_ref - dq->id;
float err_q = dq->iq_ref - dq->iq;
dq->i_sum_d += dq->ki * err_d;
dq->i_sum_q += dq->ki * err_q;
dq->vd = dq->kp * err_d + dq->i_sum_d;
dq->vq = dq->kp * err_q + dq->i_sum_q;
// 电压前馈补偿
dq->vd += 0; // 可根据需要添加电网电压前馈
dq->vq += 220; // 假设电网电压有效值220V
}
4.2 电流内环电压外环控制
电压外环维持直流母线电压稳定,电流内环确保快速电流跟踪。设计要点:
- 电压环带宽通常设为10-20Hz,电流环带宽设为1-2kHz
- 需要加入抗饱和处理,防止积分饱和
- 建议采用串级PI结构
实现代码示例:
c复制typedef struct {
float Vdc; // 直流母线电压
float Vdc_ref; // 参考电压
float Id_ref; // d轴电流参考
float kp_v; // 电压环比例
float ki_v; // 电压环积分
float i_sum_v; // 电压环积分累加
} Vdc_Control_TypeDef;
void Vdc_Control_Update(Vdc_Control_TypeDef *ctrl) {
float err = ctrl->Vdc_ref - ctrl->Vdc;
// 抗饱和处理
if((ctrl->i_sum_v > 10.0f && err > 0) || (ctrl->i_sum_v < -10.0f && err < 0)) {
// 不积分
} else {
ctrl->i_sum_v += ctrl->ki_v * err;
}
// 输出限幅
ctrl->Id_ref = ctrl->kp_v * err + ctrl->i_sum_v;
if(ctrl->Id_ref > 10.0f) ctrl->Id_ref = 10.0f;
if(ctrl->Id_ref < -10.0f) ctrl->Id_ref = -10.0f;
}
5. 系统调试与优化
5.1 调试步骤建议
-
先开环测试:验证硬件基本功能
- 测试Boost变换器的开环升压功能
- 测试逆变器的PWM生成和死区保护
-
逐步闭环:
- 先实现PLL锁相
- 然后调试电流内环
- 最后加入电压外环
-
MPPT调试:
- 在稳定光照下测试MPPT效果
- 测试动态光照下的跟踪性能
5.2 常见问题解决
-
并网电流畸变:
- 检查PLL锁相是否准确
- 检查电流采样是否同步
- 增加重复控制或谐波补偿
-
直流母线电压振荡:
- 调整电压环PI参数
- 检查母线电容是否足够
- 增加前馈控制
-
MPPT振荡:
- 优化扰动步长
- 增加天气变化检测
- 考虑采用改进算法如电导增量法
5.3 参数整定经验
-
电流环PI参数:
- 先设Ki=0,逐步增大Kp直到出现轻微振荡
- 然后加入Ki,从Kp的1/10开始调整
-
电压环PI参数:
- 通常比电流环低一个数量级
- 先设较小的Kp,观察动态响应
- Ki一般设为Kp的1/5到1/10
-
PLL参数:
- 带宽设为电网频率的1/10左右
- 阻尼比通常选择0.7-1.0
在实际项目中,我们发现使用频域分析法(如Bode图)辅助PI参数整定能显著提高效率。通过测量系统开环频率特性,可以更科学地确定合适的PI参数。
