4. 平抑风电功率波动的控制策略:基于一阶低通滤波的储能平滑控制方法
各位工程师朋友,咱们今天聊点实在的。风电功率波动,说白了就是老天爷不听话,风一阵大一阵小,电网受不了。我做了这么多年储能项目,最头疼的就是怎么让储能系统像个「老司机」一样,稳稳地把这些波动给「熨平」。今天要讲的这个方法,是我个人最常用、也最推荐入门者掌握的——基于一阶低通滤波的储能平滑控制。
4.1 为什么需要低通滤波?
你想想看,风电功率信号里,既有秒级、分钟级的快速波动(高频分量),也有小时级的缓慢变化(低频分量)。电网其实不怕慢变,怕的是快变。一阶低通滤波,说白了就是个「筛子」——把高频的毛刺滤掉,只留下平滑的趋势。
我在内蒙古一个风电场调试时遇到过这种情况:风机出力在1分钟内上下跳动了30%,储能系统如果跟着高频信号频繁充放电,不仅效率低,电池寿命也扛不住。后来用了低通滤波,效果立竿见影。
核心思想:让储能系统只响应「该响应的波动」,忽略那些「不该管的毛刺」。
4.2 一阶低通滤波的数学原理
公式其实很简单,别被吓到:
P_smooth(k) = α × P_wind(k) + (1 - α) × P_smooth(k-1)
其中:
P_smooth(k)—— 当前时刻的平滑功率目标值P_wind(k)—— 当前时刻的风电实际功率P_smooth(k-1)—— 上一时刻的平滑功率值α—— 滤波系数,取值范围0~1
嗯,这里要注意:α 越小,滤波效果越强,平滑后的曲线越「懒」;α 越大,响应越快,但平滑效果差。我一般建议初学者先取 α = 0.1~0.3 试试。
我的经验:α 的取值跟采样周期有关。如果采样周期是1秒,α取0.1相当于时间常数约10秒;如果采样周期是1分钟,α取0.1相当于时间常数约10分钟。别搞混了!
4.3 储能充放电指令的生成
有了平滑目标值,储能该充多少、放多少就清楚了:
P_battery(k) = P_smooth(k) - P_wind(k)
逻辑很简单:
- 如果
P_battery(k) > 0—— 风电出力不足,储能放电补上 - 如果
P_battery(k) < 0—— 风电出力过剩,储能充电吸收 - 如果
P_battery(k) = 0—— 完美,储能歇着
我曾经在项目里犯过一个低级错误:忘了加死区控制。结果储能系统在零点附近来回切换充放电,一天动作上千次,继电器都烧了。后来加了±2%的死区,世界清净了。
避坑指南:一定要加死区控制和功率限幅!储能系统的响应速度、SOC上下限、最大充放电功率,这些约束条件一个都不能少。
4.4 控制流程与框架
下面这张图是我自己画的,把整个控制逻辑串起来了。你看一遍就能明白:
4.5 实际工程中的注意事项
光有理论不够,我踩过的坑分享给你:
- 初始化问题:系统刚启动时,
P_smooth(0)怎么取?我习惯用第一个采样点的风电功率值,或者取前10秒的平均值。 - 滤波系数自适应:风速平稳时用大α(响应快),风速剧烈波动时用小α(平滑强)。我在一个海上风电项目里做过自适应α,效果比固定值好30%。
- 与AGC的配合:储能平滑控制不能跟电网的自动发电控制(AGC)打架。建议把平滑后的功率作为AGC的输入,而不是直接怼到并网点。
- 采样频率选择:别用太高的采样频率。1Hz足够了,再高只会增加控制器负担,实际效果提升有限。
小技巧:如果你用PLC实现这个算法,记得用浮点数运算。我见过有人用整数运算,结果α取0.1时直接截断成0,滤波完全失效。
4.6 代码示例(Python仿真)
下面这段代码,我在好几个项目里都用过。你可以直接跑一下看看效果:
import numpy as np
import matplotlib.pyplot as plt
# 模拟风电功率数据(1秒采样,共600秒)
np.random.seed(42)
t = np.arange(0, 600, 1)
P_wind = 50 + 20*np.sin(0.01*t) + 10*np.random.randn(len(t))
# 一阶低通滤波
alpha = 0.15
P_smooth = np.zeros_like(P_wind)
P_smooth[0] = P_wind[0] # 初始化
for k in range(1, len(P_wind)):
P_smooth[k] = alpha * P_wind[k] + (1 - alpha) * P_smooth[k-1]
# 储能功率指令
P_battery = P_smooth - P_wind
# 绘制结果
plt.figure(figsize=(12, 6))
plt.plot(t, P_wind, label='风电原始功率', alpha=0.6)
plt.plot(t, P_smooth, label='平滑后功率', linewidth=2)
plt.plot(t, P_battery, label='储能充放电功率', linestyle='--')
plt.xlabel('时间 (s)')
plt.ylabel('功率 (MW)')
plt.legend()
plt.grid(True)
plt.title('一阶低通滤波平滑效果')
plt.show()
运行结果解读:你会看到蓝色线(原始风电)毛刺很多,橙色线(平滑后)变得圆润,绿色线(储能功率)在零轴上下波动。储能功率的幅值,就是你需要配置的储能容量依据。
4.7 优缺点总结
| 优点 | 缺点 |
|---|---|
| 算法简单,计算量小,适合嵌入式实现 | 存在相位滞后,平滑后的信号会延迟 |
| 参数只有一个α,调试方便 | 固定α无法适应所有工况 |
| 物理意义明确,容易理解 | 对剧烈突变波动的抑制能力有限 |
| 工程应用成熟,可靠性高 | 需要配合其他策略处理极端情况 |
说实话,一阶低通滤波不是什么高大上的算法,但胜在稳定可靠。我见过太多项目,上来就搞什么神经网络、模型预测控制,结果现场跑不起来,最后还是老老实实换回低通滤波。记住:在工程里,简单往往意味着可靠。
公众号:蓝海资料掘金营,微信deep3321