1. 储能变流器系统架构解析
储能变流器(PCS)作为连接电网与储能电池的关键设备,其核心功能是实现能量的双向流动。我们构建的系统采用典型的三相两电平拓扑结构,主要由以下几个关键部分组成:
-
电网侧:三相380V/50Hz交流电网通过LCL滤波器接入变流器,滤波器参数为L1=2mH,C=30μF,L2=1mH。这种配置可将开关频率(10kHz)附近的谐波衰减40dB以上。
-
直流母线:设计电压700V,选用450V电解电容并联组成1000μF的支撑电容组。这个电压等级的选择考虑了电池组电压(600V)和电网线电压(540V峰值)的匹配。
-
储能侧:采用双向Buck/Boost变换器,开关管选用1200V/100A的SiC MOSFET,电感值设计为5mH。电池组等效为600V电压源,内阻设置为0.1Ω。
关键设计要点:LCL滤波器的谐振频率应避开工频和开关频率的中间值,我们通过公式f_res=1/(2π√(L_eqC))计算得到约2.9kHz,远离10kHz开关频率和其边带。
2. 三相PWM变流器控制策略
2.1 双闭环控制架构
系统采用电压外环+电流内环的双闭环控制结构,具体实现如下:
-
电压外环:采样直流母线电压Vdc,与700V参考值比较后通过PI调节器生成d轴电流参考Id_ref。PI参数Kp_v=0.5,Ki_v=50,这些参数通过劳斯判据法整定。
-
电流内环:
- 采集电网三相电流(Ia,Ib,Ic)和电压(Va,Vb,Vc)
- 通过Park变换得到dq坐标系下的Igd、Igq和Vgd、Vgq
- 实现前馈解耦控制:Vd = (Id_ref-Igd)Kp_i + Vgd - ωL·Igq
- q轴电流参考Iq_ref设为0实现单位功率因数
matlab复制% 改进的电压外环代码(加入抗饱和处理)
function Id_ref = VoltageLoop_Improved(Vdc_ref, Vdc_meas)
persistent integral_term last_error;
if isempty(integral_term)
integral_term = 0; last_error = 0;
end
error = Vdc_ref - Vdc_meas;
% 抗饱和逻辑:当误差符号变化时重置积分
if error * last_error < 0
integral_term = integral_term * 0.5;
end
integral_term = integral_term + Ki_v * error * Ts;
Id_ref = Kp_v * error + integral_term;
last_error = error;
end
2.2 前馈补偿技术
前馈控制是提升动态响应的关键,我们实现了两种前馈:
-
电网电压前馈:直接将电网电压分量Vgd、Vgq加入控制输出,补偿电网扰动。实测表明,当电网电压骤升10%时,无前馈的系统母线电压波动达5.2%,加入后降至0.8%。
-
电容电流前馈:通过检测电容电流ic补偿负载突变影响。实现公式:
code复制Id_ff = ic / (1.5·Vgd/Vdc)这使得负载阶跃响应时间从50ms缩短到15ms。
3. SVPWM调制实现细节
3.1 空间矢量分区策略
采用七段式SVPWM实现,关键步骤如下:
- 计算参考电压矢量Vα、Vβ
- 通过以下判断确定扇区:
c复制uint8_t SectorDetermine(float Vα, float Vβ) { float v1 = Vβ; float v2 = 0.866*Vα - 0.5*Vβ; // sqrt(3)/2=0.866 float v3 = -0.866*Vα - 0.5*Vβ; int N = (v1>0)*1 + (v2>0)*2 + (v3>0)*4; const uint8_t table[8] = {0,1,5,0,3,2,4,0}; return table[N]; } - 计算各矢量作用时间:
code复制T1 = √3·Ts·Vβ/Vdc T2 = (√3·Vα + Vβ)·Ts/(2Vdc) T0 = Ts - T1 - T2
3.2 DSP实现优化
在TI C2000系列DSP上实现时,我们做了以下优化:
- 查表法替代实时计算:预计算所有可能的开关模式,减少75%计算时间
- 定点数优化:将√3等常数转换为Q15格式的0x6ED9存储
- 死区补偿:在前沿插入500ns死区时间,并通过软件补偿电压误差
实测数据:优化后PWM中断服务程序执行时间从8μs降至3.2μs,满足10kHz开关频率要求。
4. 双向DCDC变换器控制
4.1 功率闭环设计
电池侧控制采用功率外环+电流内环结构:
- 功率环:将功率指令P_ref除以电池电压Vbat得到电流参考I_ref
code复制I_ref = P_ref / Vbat - 电流环:采用峰值电流控制,PI参数Kp=0.1,Ki=20
关键改进点:
- 增加Vbat前馈补偿,功率跟踪误差从8%降至0.5%
- 加入斜坡补偿,解决占空比>50%时的次谐波振荡
4.2 模式切换策略
充放电模式切换是难点,我们采用以下策略:
- 预同步控制:切换前先使DCDC输出电压跟踪母线电压
- 软启动:功率指令以5kW/ms斜率变化
- 积分器复位:模式切换时清零PI控制器的积分项
c复制void ModeSwitch(bool charge_mode) {
static bool last_mode = charge_mode;
if (last_mode != charge_mode) {
Clear_PI_Integrator();
Ramp_Generator_Reset();
last_mode = charge_mode;
}
}
5. 系统测试与问题排查
5.1 典型工况测试
设置以下测试序列验证系统性能:
| 时间区间 | 工作模式 | 功率指令 | 关键指标要求 |
|---|---|---|---|
| 0-0.2s | 待机 | 0kW | 母线电压波动<1% |
| 0.2-0.6s | 电网→电池充电 | +20kW | THD<3%,效率>97% |
| 0.6-1.0s | 电池→电网放电 | -20kW | 功率因数>0.99,响应<20ms |
实测波形显示:
- 母线电压稳定在700±3V
- 充放电切换过程无冲击电流
- 总谐波失真THD=2.7%
5.2 常见问题解决方案
-
启动过冲问题:
- 现象:上电瞬间母线电压超调至750V
- 原因:前馈量未限幅
- 解决:增加±10%的输出限幅
-
模式切换振荡:
- 现象:放电时出现400Hz振荡
- 原因:PI积分器未复位
- 解决:切换时清零积分项
-
功率跟踪偏差:
- 现象:实际功率比指令低8%
- 原因:未考虑电池电压变化
- 解决:加入Vbat前馈补偿
6. 关键参数设计指南
6.1 PI参数整定方法
-
电流环:
- 带宽取开关频率的1/10(1kHz)
- Kp_i = L·2π·BW = 5mH*6280 = 31.4 → 取30
- Ki_i = R·2π·BW = 0.1*6280 = 628 → 取600
-
电压环:
- 带宽取电流环的1/10(100Hz)
- Kp_v = C·2π·BW = 1mF*628 = 0.628 → 取0.6
- Ki_v = 1/(R·C)·2π·BW = 628 → 取500
6.2 电感电容选型
-
网侧电感:
code复制L_min = Vdc/(4·ΔI·fsw) = 700/(4*20%*50*10k) = 1.75mH实际取2mH,留有余量
-
直流电容:
code复制C_min = Po/(2ω·Vdc·ΔV) = 20k/(314*700*0.01*700) = 130μF选用1000μF考虑纹波和保持时间
在调试过程中发现,实际需要的PI参数比理论计算值小约30%,这是因为:
- 理论计算未考虑数字控制延迟
- 实际系统中存在未建模的动态特性
- 传感器测量噪声限制了最大增益
建议采用"理论计算→仿真验证→实验微调"的三步法确定最终参数。