1. 热电联产系统在综合能源系统中的关键作用
热电联产(Combined Heat and Power, CHP)作为综合能源系统的核心组件,其选址和容量配置直接影响整个系统的经济性和可靠性。在实际工程应用中,我们常常面临这样的困境:CHP机组位置选择不当会导致电网线路过载、热网水力失调或天然气供应不足;容量配置不合理则会造成能源浪费或供能不足。这正是我们需要深入研究CHP选址定容问题的现实背景。
传统单能流系统的规划方法已无法满足综合能源系统的需求。以某工业园区项目为例,最初仅考虑电网约束设计的CHP方案,在实际运行中导致热网末端用户供热不足,不得不追加投资建设调峰锅炉。这种教训促使我们必须建立电-热-气多能流耦合的优化模型。
2. 多能流耦合建模基础
2.1 电网潮流计算模型
电力网络采用经典的交流潮流模型,其核心是节点功率平衡方程:
code复制P_i = V_iΣV_j(G_ijcosθ_ij + B_ijsinθ_ij)
Q_i = V_iΣV_j(G_ijsinθ_ij - B_ijcosθ_ij)
其中θ_ij=θ_i-θ_j,G_ij和B_ij分别为节点导纳矩阵的实部和虚部。在MATLAB实现时,我们采用稀疏矩阵存储导纳矩阵以提高计算效率:
matlab复制Ybus = sparse(nbus,nbus);
for k = 1:nbranch
Ybus(branch(k,1),branch(k,2)) = -1/branch(k,3);
Ybus(branch(k,2),branch(k,1)) = Ybus(branch(k,1),branch(k,2));
end
2.2 热网水力-热力模型
热网建模需同时考虑水力特性和热力特性。水力模型采用质量守恒和压力平衡方程:
code复制A·G = q
Λ·G + H = 0
其中A为节点-支路关联矩阵,Λ为阻力系数矩阵。热力模型则通过节点温度方程描述:
code复制Φ = (diag(G)·A^T)·(A·diag(G))^(-1)·Φ_s
在MATLAB中构建热网模型时,需特别注意非线性的处理:
matlab复制% 水力计算迭代
while err > tol
G = Λ^(-1)*(A'*H);
err = norm(A*G - q);
end
2.3 天然气网络模型
天然气稳态流动采用Weymouth方程描述:
code复制f_mn = sgn(p_m,p_n)·C_mn√(p_m^2 - p_n^2)
其中C_mn为管道特性常数。在MATLAB实现中,需要处理绝对值项带来的非线性:
matlab复制f = @(p) C.*sqrt(abs(p(pipe(:,1)).^2 - p(pipe(:,2)).^2));
3. 综合能流计算方法
3.1 牛顿-拉夫逊法的扩展应用
将传统电力系统潮流计算的牛顿法扩展到综合能源系统,构建统一雅可比矩阵:
code复制[J_EE J_EH J_EG]
[J_HE J_HH J_HG]
[J_GE J_GH J_GG]
其中各子矩阵分别表示不同能源网络之间的耦合关系。MATLAB实现关键步骤:
matlab复制J = [dPE/dθ dPE/dV dPE/dG dPE/dH;
dPH/dθ dPH/dV dPH/dG dPH/dH;
...];
3.2 耦合变量处理技巧
电-热耦合通过CHP的功率转换特性实现:
code复制P_elec = η_elec·Q_gas
Q_heat = η_heat·Q_gas
在实际编程中,我们采用面向对象的方式组织各类能源设备:
matlab复制classdef CHP
properties
eta_elec
eta_heat
P_max
end
methods
function [P,Q] = output(obj,gas)
P = min(obj.eta_elec*gas, obj.P_max);
Q = obj.eta_heat*gas;
end
end
end
4. 选址定容优化模型
4.1 目标函数构建
以系统总运行成本最小为目标,包含:
- 电网网损成本
- 热网输送成本
- 气网供应成本
- CHP投资成本
数学表达式:
code复制min Σα(P_loss) + β(Q_loss) + γ(f_loss) + Σ(c_inv·x_i)
MATLAB中使用fmincon函数时需注意非线性约束的处理:
matlab复制options = optimoptions('fmincon','Algorithm','interior-point',...
'MaxIterations',1000,'ConstraintTolerance',1e-6);
[x,fval] = fmincon(@objfun,x0,[],[],[],[],lb,ub,@nonlcon,options);
4.2 约束条件设置
关键约束包括:
-
电网安全约束:
code复制V_min ≤ V_i ≤ V_max |S_ij| ≤ S_ij_max -
热网温度约束:
code复制Φ_min ≤ Φ_i ≤ Φ_max -
气网压力约束:
code复制p_min ≤ p_i ≤ p_max -
CHP运行约束:
code复制P_min ≤ P_CHP ≤ P_max Q_min ≤ Q_CHP ≤ Q_max
在MATLAB中采用矩阵形式高效处理约束:
matlab复制function [c,ceq] = nonlcon(x)
c = [V - Vmax; Vmin - V;
abs(S) - Smax;
Phi - Phimax; Phimin - Phi];
ceq = [PF_eq; HF_eq; GF_eq];
end
5. 算法实现与案例分析
5.1 MATLAB程序架构
推荐采用模块化设计:
- 输入模块:读取网络参数
- 初始化模块:设置初始值
- 能流计算模块:实现多能流求解
- 优化模块:处理选址定容问题
- 输出模块:可视化结果
关键目录结构:
code复制/project
/input # 案例数据
/src # 源代码
main.m
power_flow.m
heat_flow.m
gas_flow.m
optimizer.m
/results # 输出结果
5.2 IEEE 33节点系统案例
配置参数示例:
matlab复制% 电网参数
busdata = [...
1 1 0 0 1.05 0 1 1;
...];
linedata = [...
1 2 0.0922 0.0470 0;
...];
% 热网参数
heatsrc = [1 120]; % 节点1,温度120°C
heatload = [18 20; ...]; % 节点18,负荷20MW
% 气网参数
gassrc = [1 4.0]; % 节点1,压力4MPa
5.3 结果分析与验证
典型优化结果包括:
- CHP最佳位置:通常位于电/热负荷中心附近
- 最优容量:需权衡投资成本和运行成本
- 能流分布:验证各网络约束是否满足
结果可视化代码示例:
matlab复制figure;
subplot(2,2,1);
plot(V,'ro-'); title('节点电压');
subplot(2,2,2);
plot(Phi,'bs-'); title('节点温度');
subplot(2,2,[3 4]);
bar([P_loss; Q_loss; f_loss]');
legend('电网损耗','热网损耗','气网损耗');
6. 工程实践中的关键问题
6.1 数据准备注意事项
-
电网数据:
- 基准电压等级需统一
- 变压器变比需准确设置
- 并联电容/电抗器不能遗漏
-
热网数据:
- 管道粗糙度影响水力计算
- 保温系数影响温降计算
- 用户负荷需区分采暖/生活热水
-
气网数据:
- 管道直径和长度需精确
- 燃气热值影响能量转换
- 压缩机特性曲线需完整
6.2 计算效率优化技巧
-
稀疏矩阵技术:
matlab复制Ybus = sparse(i,j,val,nbus,nbus); -
并行计算:
matlab复制parfor i = 1:n_scenario [~,cost(i)] = run_case(scenario(i)); end -
初值选择策略:
- 先用直流潮流提供电压初值
- 热网采用平均温度初值
- 气网采用线性压力降假设
6.3 模型扩展方向
-
不确定性处理:
- 考虑可再生能源出力波动
- 加入负荷预测误差
- 采用随机规划或鲁棒优化
-
动态特性扩展:
- 电网暂态稳定约束
- 热网热惯性模型
- 气网暂态流动方程
-
多时间尺度优化:
- 长期规划(年)
- 中期调度(周)
- 实时控制(分钟)
在实际项目应用中,我们发现采用分层优化策略能有效平衡计算精度和效率。首先在规划层确定CHP的大致位置和容量范围,然后在运行层进行精细化调度。这种分而治之的方法在多个工业园区综合能源系统项目中得到了成功验证。