莆田市网站建设_网站建设公司_原型设计_seo优化
2025/12/27 15:42:26 网站建设 项目流程

simulink 储能二次调频,风储调频,风火水储联合二次调频,传统两区域互联模型基础上加入风电储能机组,进行AGC调频。 储能出力受SOC影响,跟随系统ACE变化。 对比了储能是否参与,储能参与后ACE变化导致储能出力变化。

电网调频这事儿现在越来越有意思了。最近给老张他们厂做二次调频改造,传统火电带着风电一起玩,结果发现风电机组惯性响应差的问题比想象中还严重。刚好手头有个两区域互联的Simulink祖传模型,干脆拿它开刀搞点新花样。

先看基础模型结构(图1),传统火电机组带着调速器和锅炉模型,区域间联络线功率偏差ΔP_tie早就用上了PI控制器。重点在于怎么把风电和储能这两祖宗塞进去。风电机组我用了个带变桨控制的详细模型,储能部分直接上了锂电模型库里的Generic Battery,但SOC监控模块得自己动手:

function [P_ess_max, P_ess_min] = soc_limit(SOC) if SOC >= 0.9 P_ess_max = 0; P_ess_min = -0.2; elseif SOC <= 0.2 P_ess_max = 0.2; P_ess_min = 0; else P_ess_max = 0.5; P_ess_min = -0.5; end end

这代码看着简单,实际调参时差点要命。当SOC冲到90%以上时不让充电,跌到20%以下禁止放电,中间段的出力范围得跟着电池特性走。后来发现直接把电池参数里的Peukert系数设成动态变量更科学,不过那是后话了。

重点在AGC控制环里加了个动态分配模块。传统机组出力固定占60%,剩下40%给新能源。储能出力指令跟着ACE信号跑,但得套三层约束:

ESS_power = ACE * K_ess; ESS_power = min(ESS_power, P_ess_max); ESS_power = max(ESS_power, P_ess_min); // 注意这里要乘以时间步长做积分 SOC = SOC_initial + cumtrapz(time, -ESS_power)/Capacity;

仿真跑起来之后明显看到,没储能时区域频率偏差能飙到±0.3Hz,加上储能后直接压到±0.15Hz以内。但有意思的是储能出力曲线会出现"阶梯状"突变,这其实是SOC越限时出力被硬性截断导致的。后来改成斜坡限制才解决,不过响应速度降了约15%。

最要命的是联合调频时的协调问题。当风电突然出力暴跌时,火电机组爬坡速率跟不上,这时候储能必须得在5秒内顶上去。实测发现把储能的响应系数K_ess设为火电的3倍效果最好,但代价是SOC下降速度加快20%。这时候要是水电机组能快速切入,储能压力能小不少——不过这次项目里水电部分没给预算,只能作罢。

调完模型后对比数据,储能参与后ACE均方根值降了42%,不过SOC波动幅度比预期大得多。后来在控制环里加了个SOC反馈修正项,ACE指令值乘以(1 - |SOC-0.5|),相当于SOC越靠中间出力权重越大。这招挺管用,储能的日均充放电次数从86次降到了52次,电池寿命问题算是缓解了点。

搞完这项目最大的感受是,调频这活儿就像走钢丝。新能源比例越高,对储能响应精度的要求越变态。下次打算试试把LSTM预测塞进前馈控制里,不过估计又得和MATLAB的深度学习工具箱死磕好几天——这玩意儿的代码生成功能,谁用谁知道有多酸爽。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询