1. 项目概述
作为一名在电力系统领域摸爬滚打多年的工程师,今天想和大家分享一个极具实用价值的仿真项目——含电池储能与PID控制器的两区域互联电网调频仿真。这个项目完美展现了现代电力系统面临的核心挑战:如何在新能源高渗透率背景下维持电网频率稳定。
传统电网依靠同步发电机的旋转惯量(即H参数)来缓冲功率失衡造成的频率波动。但随着风电、光伏等间歇性电源占比提升,系统等效惯性不断降低。我们团队实测发现,某些新能源占比超过30%的区域电网,等效H值已从传统的5-6秒降至2-3秒。这种情况下,电池储能系统(BESS)因其毫秒级响应特性,成为频率稳定的"急救兵"。
这个仿真项目最精彩之处在于:
- 构建了完整的双区域互联电网模型
- 实现了传统PID控制与电池储能的协同控制
- 量化分析了不同场景下的调频性能差异
- 揭示了区域间储能协调的关键问题
2. 系统建模与参数设定
2.1 两区域互联电网结构
我们构建的模型包含两个通过联络线连接的电网区域,每个区域包含:
- 同步发电机(带调速器)
- 负荷模型
- 电池储能系统
- 区域控制误差(ACE)计算模块
关键参数设置需要特别注意物理意义:
matlab复制% 区域1参数
H1 = 5; % 惯性时间常数[s]
D1 = 1.5; % 阻尼系数[%/Hz]
R1 = 0.05; % 调速器下垂特性[Hz/pu]
% 区域2参数
H2 = 6;
D2 = 1.8;
R2 = 0.06;
这里H值代表系统惯性,其物理含义是:当系统失去平衡功率时,仅靠旋转动能维持频率不突变的时间。例如H=5表示系统动能可单独支撑额定负荷5秒。
重要提示:新能源机组通过逆变器并网,不提供旋转惯性。实际建模时需根据新能源渗透率对H值进行等效折算,这是很多初学者容易忽略的关键点。
2.2 电池储能系统建模
储能系统模型包含三个核心部分:
- 功率转换系统(PCS)响应模型
- 电池本体动态模型
- 状态估算(SOC)算法
我们采用一阶惯性环节模拟PCS动态:
matlab复制function P_out = PCS_model(P_cmd, T_delay)
% P_cmd: 功率指令
% T_delay: 响应延迟时间常数
persistent P_prev;
if isempty(P_prev)
P_prev = 0;
end
P_out = P_prev + (P_cmd - P_prev)*(1-exp(-1/T_delay));
P_prev = P_out;
end
实测数据显示,优质PCS设备的T_delay应设置在20-100ms范围内。设置过小会导致仿真结果过于理想化,过大则无法体现储能的速度优势。
3. 控制策略实现
3.1 PID控制器整定
我们采用经典的Ziegler-Nichols方法进行PID参数整定,具体步骤:
- 先设置Ki=0, Kd=0,逐渐增大Kp直至出现等幅振荡(临界增益Ku)
- 记录振荡周期Tu
- 根据下表确定PID参数:
| 控制类型 | Kp | Ti | Td |
|---|---|---|---|
| P | 0.5Ku | - | - |
| PI | 0.45Ku | 0.83Tu | - |
| PID | 0.6Ku | 0.5Tu | 0.125Tu |
最终我们采用的参数:
matlab复制Kp = 0.8; % 比例增益
Ki = 0.15; % 积分时间常数
Kd = 0.05; % 微分时间常数
工程经验:在实际电网中,微分环节容易引入噪声,通常采用不完全微分形式。仿真时可加入一个0.1-1Hz的低通滤波器。
3.2 储能功率分配策略
储能控制的核心逻辑体现在以下代码中:
matlab复制function [P_batt, SOC] = batt_control(delta_f, SOC_prev, dt)
% 参数定义
P_max = 50; % MW
K_batt = 2.5; % 增益系数
Capacity = 100; % MWh
eff_chg = 0.95; % 充电效率
eff_dis = 0.95; % 放电效率
% SOC边界保护
if SOC_prev < 20 && delta_f > 0
P_batt = 0; % 低SOC时禁止放电
elseif SOC_prev > 95 && delta_f < 0
P_batt = 0; % 高SOC时禁止充电
else
P_batt = -K_batt * delta_f; % 负号表示频率降时放电
P_batt = max(min(P_batt, P_max), -P_max);
end
% SOC更新
if P_batt > 0
SOC = SOC_prev - P_batt*dt/(Capacity*eff_dis);
else
SOC = SOC_prev - P_batt*dt*eff_chg/Capacity;
end
end
这个算法有几个精妙之处:
- 采用线性比例控制,响应速度快
- 通过SOC约束防止电池过充过放
- 考虑了充放电效率差异
- dt参数确保不同仿真步长下的SOC计算准确
4. 仿真结果分析
4.1 三种场景对比测试
我们在相同负荷阶跃扰动(100MW)下对比了三种控制策略:
| 场景 | 最大频率偏差(Hz) | 稳定时间(s) | 联络线功率波动(MW) |
|---|---|---|---|
| 纯PID控制 | 0.28 | 45 | 62 |
| PID+储能 | 0.09 | 22 | 38 |
| 高新能源渗透率 | 0.35 | 58 | 75 |
关键发现:
- 储能可将频率偏差降低68%
- 稳定时间缩短50%以上
- 新能源高渗透率场景下性能恶化明显
4.2 区域间协调问题
当两个区域参数不对称时,会出现有趣的"功率借调"现象:
- 区域1储能容量大、响应快
- 区域2依赖传统机组调节
- 结果:区域1储能过度补偿,导致联络线功率反向波动
解决方案是引入协调控制因子:
matlab复制function P_batt1 = coord_control(delta_f1, delta_f2)
alpha = 0.7; % 协调系数
P_batt1 = -K_batt * (alpha*delta_f1 + (1-alpha)*delta_f2);
end
这个算法使得本区域储能不仅响应本地频率偏差,还考虑相邻区域状态,有效抑制了联络线功率振荡。
5. 工程实践要点
5.1 参数整定经验
- 惯性时间常数H:
- 火电主导系统:4-6秒
- 水电主导系统:3-5秒
- 高新能源渗透系统:1-3秒(需实测验证)
- 储能增益K_batt:
- 初始值建议取系统总惯量的20-30%
- 最终值需通过时域仿真优化
- PID参数:
- 先调Kp使系统临界稳定
- 再加Ki消除静差
- 最后用Kd改善动态性能
5.2 常见问题排查
- 仿真发散:
- 检查单位制是否统一(标幺值/有名值)
- 验证代数环问题(必要时加入小时间常数)
- 储能响应异常:
- 确认SOC约束逻辑正确
- 检查功率限幅是否生效
- 验证响应延迟时间常数
- 频率二次跌落:
- 可能是储能退出过早导致
- 需优化储能持续时间或引入惯性模拟
6. 模型扩展方向
- 考虑更详细的电池模型:
- 包含温度影响
- 计及循环老化效应
- 精确的SOC-OCV曲线
- 多类型储能协调:
- 飞轮储能+锂电池混合
- 超级电容应对秒级波动
- 氢储能长时调节
- 市场机制耦合:
- 调频信号与能量市场联动
- 储能充放电策略优化
- 考虑经济性约束
这个仿真平台我们已经持续优化了三年,最新版本加入了风电功率预测误差模型和光伏日出日落特性。下次可以专门分享新能源场站参与调频的仿真案例,特别是虚拟同步发电机(VSG)技术的实现细节。