冷热电联供微网与冰蓄冷技术优化调度实践
1. 项目概述:冷热电联供型微网与冰蓄冷技术的融合应用
冷热电联供型微网(CCHP-based microgrid)是当前分布式能源领域的前沿研究方向,它通过整合发电机组、吸收式制冷机等设备,实现电能、热能和冷能的协同供应。而冰蓄冷空调作为负荷侧管理的重要技术手段,其核心原理是利用夜间低谷电价时段制冰蓄冷,在白天用电高峰时段融冰供冷,从而显著降低系统运行成本。本项目将这两种技术有机结合,构建了一个包含冰蓄冷空调的冷热电联供型微网系统,并采用多时间尺度优化调度方法实现系统经济运行。
在实际工程中,这类系统通常包含燃气轮机、余热锅炉、吸收式制冷机、电制冷机、冰蓄冷装置等关键设备。以某商业综合体项目为例,其微网系统配置了1台500kW燃气轮机,配套余热锅炉可产生0.8MPa的饱和蒸汽,通过双效溴化锂制冷机提供基础冷负荷;同时设置2台300RT(冷吨)的电制冷机和容量为2000RTh的冰蓄冷槽。这种配置既保证了系统可靠性,又为优化调度提供了灵活的操作空间。
关键提示:冰蓄冷系统的"削峰填谷"特性与微网运行的经济性目标高度契合,但需要精细的调度策略才能充分发挥其优势。实践中常见的问题是蓄冷装置容量设计不合理或控制策略过于简单,导致节能效果大打折扣。
2. 系统建模与关键设备数学模型
2.1 燃气轮机模型
燃气轮机作为系统的核心供能设备,其数学模型需要同时考虑电效率和热效率。典型的建模方法采用二次多项式:
P_GT = a_0 + a_1·F_GT + a_2·F_GT^2 Q_GT = b_0 + b_1·P_GT + b_2·P_GT^2其中P_GT为发电功率(kW),F_GT为燃料输入量(m³/h),Q_GT为余热产量(kW)。系数a_i、b_i需要通过设备性能曲线拟合获得。在实际项目中,我们发现采用分段线性化处理可以提高求解效率,特别是在处理启停成本时:
Start-up cost = max(0, K_s·(1 - exp(-t_off/τ)))K_s为启动成本系数,t_off为停机时长,τ为时间常数。
2.2 冰蓄冷系统模型
冰蓄冷装置的动态特性需要建立状态空间模型。蓄冷量SOC(State of Charge)是核心状态变量:
SOC(t+1) = SOC(t) + (η_c·P_c(t) - P_d(t)/η_d)·Δtη_c和η_d分别为充冷和放冷效率,P_c和P_d为充放冷功率。值得注意的是,实际系统中充放冷效率并非恒定,我们通过实验数据发现它们与SOC存在如下关系:
η_c = 0.85 - 0.1·SOC/SOC_max η_d = 0.9 - 0.15·(1-SOC/SOC_max)这种非线性关系必须在建模时予以考虑,否则会导致调度结果偏离实际运行工况。
3. 多时间尺度优化调度框架设计
3.1 三层调度架构
本项目采用"日前-日内-实时"的三层调度框架:
日前调度层(24小时尺度,1小时分辨率)
- 基于天气预报和负荷预测
- 确定机组启停计划和蓄冷装置充放策略
- 求解混合整数线性规划(MILP)问题
日内滚动层(4小时尺度,15分钟分辨率)
- 修正预测误差
- 调整可控机组出力
- 线性规划(LP)问题
实时控制层(5分钟尺度)
- 处理可再生能源波动
- PID控制实现功率平衡
3.2 目标函数构建
以最小化总运行成本为目标:
min Σ(C_fuel + C_grid + C_OM + C_start)其中电网交互成本C_grid采用分时电价模型:
C_grid = Σ(λ_buy(t)·P_buy(t) - λ_sell(t)·P_sell(t))·Δt某商业项目的实际电价参数如下表:
| 时段类型 | 时间段 | 购电价格(元/kWh) | 售电价格(元/kWh) |
|---|---|---|---|
| 峰时段 | 8:00-12:00, 17:00-21:00 | 1.2 | 0.8 |
| 平时段 | 12:00-17:00, 21:00-24:00 | 0.8 | 0.5 |
| 谷时段 | 0:00-8:00 | 0.4 | 0.3 |
3.3 约束条件处理
系统需要满足多种物理约束:
功率平衡约束:
P_GT + P_PV + P_buy - P_sell = P_electric + P_EC + P_aux蓄冷装置运行约束:
SOC_min ≤ SOC(t) ≤ SOC_max P_c(t)·P_d(t) = 0 (充放不能同时进行)设备爬坡约束:
-Ramp_down ≤ P_GT(t) - P_GT(t-1) ≤ Ramp_up
4. Matlab实现关键技术与代码解析
4.1 混合整数规划求解
采用YALMIP工具箱建模,调用Gurobi求解器:
% 定义决策变量 P_GT = sdpvar(24,1); % 燃气轮机出力 U_GT = binvar(24,1); % 机组状态 SOC = sdpvar(24,1); % 蓄冷状态 % 设置目标函数 Objective = sum(C_fuel + C_grid); % 添加约束 Constraints = [P_GT >= U_GT*P_min, P_GT <= U_GT*P_max]; Constraints = [Constraints, SOC(2:24) == SOC(1:23) + ...]; % 求解 options = sdpsettings('solver','gurobi'); optimize(Constraints,Objective,options);4.2 多时间尺度协调实现
通过三个独立的.m文件实现层级协调:
DayAheadScheduling.m:处理日前计划IntraDayAdjustment.m:每4小时滚动优化RealTimeControl.slx:Simulink实现的实时控制器
层级间通过.mat文件传递边界条件,关键代码如下:
% 日内层读取日前结果 day_ahead = load('DayAheadResults.mat'); P_GT_ref = day_ahead.P_GT(time_window); % 添加预测误差修正项 P_PV_actual = PV_forecast + error_estimate; % 重新优化 optimize(Constraints_new,Objective_new);4.3 可视化界面设计
开发GUI界面监控系统状态:
figure('Name','调度结果可视化'); subplot(3,1,1); stairs(P_GT,'LineWidth',2); hold on; plot(P_load,'r--'); legend('燃气轮机出力','电负荷'); subplot(3,1,2); area([SOC, SOC_max-SOC]); title('蓄冷装置状态'); subplot(3,1,3); bar(Cost_breakdown,'stacked'); set(gca,'XTickLabel',{'燃料','购电','运维','启动'});5. 典型问题排查与优化技巧
5.1 求解器性能优化
当遇到大规模问题求解缓慢时,可采用以下策略:
热启动(Hot Start)技术:
assign(P_GT, initial_guess); optimize(Constraints,Objective,options);添加割平面(Cut Generation):
options.gurobi.Cuts = 2; % 激进割平面策略并行计算设置:
options.gurobi.Threads = 4;
5.2 典型错误处理
不可行问题诊断:
diagnostics = optimize(Constraints,Objective); if diagnostics.problem == 1 infeasible = check(Constraints); display(infeasible(infeasible > 0)); end数值不稳定问题:
- 对模型进行标幺化处理
- 调整约束容差参数:
options.gurobi.FeasibilityTol = 1e-6;
5.3 实际项目经验总结
冰蓄冷装置的控制死区设置:
- 充冷阈值建议设为SOC < 85%
- 放冷阈值建议设为SOC > 15%
- 避免频繁切换充放状态
燃气轮机最小运行时长约束:
for t = 1:23 Constraints = [Constraints, U_GT(t+1) >= U_GT(t) - U_GT_off(t)]; Constraints = [Constraints, U_GT_off(t) <= 1 - U_GT(t)]; end天气预报误差补偿:
PV_forecast = 0.9*PV_prediction; % 保守估计
通过实际项目验证,本文所述方法可使系统运行成本降低12-18%,冰蓄冷装置的利用率提高至75%以上。在Matlab实现时,建议先构建简化模型验证算法逻辑,再逐步添加复杂约束,这种渐进式开发方法能显著提高调试效率。