这个光伏储能系统由四大核心模块构成:光伏阵列与MPPT控制器、双向DCDC变换器、三相并网逆变器、离网逆变器。系统最精妙之处在于能够根据电网状态自动切换运行模式,实现并网与离网的无缝衔接。
光伏阵列通过Boost电路与直流母线连接,采用电导增量法实现最大功率点跟踪(MPPT)。储能电池通过双向Buck-Boost变换器与母线相连,既能在光伏发电过剩时储存能量,又能在发电不足时释放能量。三相逆变器则根据电网状态在PQ控制(并网)和VF控制(离网)之间切换。
关键设计要点:系统采用750V直流母线电压,这个电压等级在效率和安全之间取得了良好平衡。电压过高会增加绝缘成本,过低则会导致电流过大,增加线路损耗。
电导增量法相比传统的扰动观察法具有更快的跟踪速度和更小的功率振荡。其核心原理是通过比较电导变化率(dI/dV)与瞬时电导(-I/V)的关系来确定工作点移动方向:
python复制def IncCond(dV, dI, V, I):
if abs(dV) < 0.1: # 防止除零
return 0 if dI==0 else (-1 if dI<0 else 1)
conductance = dI/dV + I/V
return 1 if conductance > 0 else -1 # 1表示增加电压,-1表示减小电压
实际工程中需要注意三个关键点:
MPPT控制器的硬件设计直接影响跟踪效果:
我们在实测中发现,当云层快速移动时,传统扰动观察法会有约8-12%的功率损失,而电导增量法可将损失控制在3%以内。
双向DCDC变换器是系统的"稳压器",其核心任务是维持直流母线电压稳定。控制逻辑采用状态机实现:
c复制void DCDC_Control() {
float Vbus = Read_BusVoltage();
static enum {BUCK, BOOST} mode = BOOST;
if(Vbus < 730) { // 进入Boost模式
mode = BOOST;
duty = PID_Calculate(750.0, Vbus);
}
else if(Vbus > 770 && Battery_SOC < 95) { // 进入Buck模式
mode = BUCK;
duty = PID_Calculate(Charge_Voltage, Battery_Voltage);
}
Set_PWM_Duty(duty);
}
重要经验:模式切换时需设置5ms的过渡期,在此期间PWM占空比线性渐变,避免电流突变。我们实测发现,不加过渡期会导致最大2A的电流冲击。
功率电感的选择尤为关键,需要满足两种模式下的电流需求:
建议使用铁硅铝磁芯电感,其具有:
PQ控制的核心是快速准确的电流跟踪,采用基于旋转坐标系的解耦控制:
matlab复制function [Vd_ref, Vq_ref] = Current_Loop(Id_ref, Iq_ref, Id, Iq, wL)
% 参数说明:
% wL - 电网角频率与滤波电感的乘积
% Kp, Ki - PI控制器参数
persistent integral_d integral_q;
% d轴电流环
error_d = Id_ref - Id;
integral_d = integral_d + Ki_d * error_d;
Vd_ref = Kp_d * error_d + integral_d - wL * Iq;
% q轴电流环
error_q = Iq_ref - Iq;
integral_q = integral_q + Ki_q * error_q;
Vq_ref = Kp_q * error_q + integral_q + wL * Id;
end
调试技巧:
并网运行需要精确的电网同步,改进的软件锁相环设计:
c复制typedef struct {
float alpha, beta; // αβ分量
float d, q; // dq分量
float sin_theta, cos_theta;
float freq; // 估计频率
float integral; // 积分项
} PLL_Type;
void PLL_Update(PLL_Type *pll, float va, float vb, float vc) {
// Clarke变换
pll->alpha = va;
pll->beta = (vb - vc) * ONE_BY_SQRT3;
// Park变换
pll->d = pll->alpha * pll->cos_theta + pll->beta * pll->sin_theta;
pll->q = -pll->alpha * pll->sin_theta + pll->beta * pll->cos_theta;
// PI调节器更新频率
float error = -pll->q; // 将q轴电压调零
pll->integral += KI_PLL * error;
pll->freq = KP_PLL * error + pll->integral + NOMINAL_FREQ;
// 更新角度
float delta_theta = 2 * PI * pll->freq * TS;
pll->theta += delta_theta;
if(pll->theta > 2*PI) pll->theta -= 2*PI;
// 更新三角函数值
pll->sin_theta = sin(pll->theta);
pll->cos_theta = cos(pll->theta);
}
实测表明,这种设计在电网电压畸变率<5%时,相位误差可控制在±0.5度以内。
离网模式下,逆变器需要建立稳定的电压和频率参考:
c复制void VF_Control() {
static float angle = 0;
float Vrms = Measure_OutputVoltage();
// 电压环调节幅值
V_ref = 310 + PID_Voltage(310, Vrms);
// 频率环调节
float freq = 50 + PID_Frequency(50, Estimate_Frequency());
// 角度积分
angle += 2 * PI * freq * CONTROL_PERIOD;
if(angle > 2*PI) angle -= 2*PI;
// 生成SPWM
Generate_SPWM(angle, V_ref);
}
关键参数设计:
离网运行时负载突变是最大挑战,我们采用以下策略:
实测数据表明,100%负载阶跃时电压跌落可控制在5%以内,恢复时间<20ms。
孤岛检测采用主动频移法,在软件中实现:
c复制float AFD(float freq) {
static float delta_f = 0;
float K_afd = 0.1; // 频移系数
if(freq > 50.1) {
delta_f += K_afd * (freq - 50);
} else if(freq < 49.9) {
delta_f += K_afd * (freq - 50);
}
// 限制最大频移
delta_f = constrain(delta_f, -0.5, 0.5);
return delta_f;
}
参数选择经验:
并离网切换的关键是相位同步,我们采用预同步技术:
离网转并网:
并网转离网:
实测切换时间:
光伏系统常见的干扰问题及解决方案:
我们总结的故障速查表:
| 现象 | 可能原因 | 排查方法 |
|---|---|---|
| MPPT效率低 | 传感器偏差 | 校准电压电流传感器 |
| 母线电压振荡 | PID参数不当 | 重新整定DCDC控制参数 |
| 并网电流畸变 | 锁相不准 | 检查PLL响应速度 |
| 切换时保护 | 相位差过大 | 检查预同步算法 |
| 离网电压不稳 | 负载突变 | 优化前馈补偿参数 |
最终系统达到的指标:
这套系统在实际运行中最令人满意的特点是其稳定性。即使在多云天气下频繁切换工作模式,系统仍能保持可靠运行。特别是在处理非线性负载(如整流器)时,VF控制展现出了出色的电压质量保持能力。