1. 电-气-热综合能源系统概述
电-气-热综合能源系统(Integrated Electricity-Gas-Heat Energy System, IEGHES)是现代能源互联网的核心组成部分。这种系统通过耦合电网、天然气网和区域供热网络,实现多种能源形式的协同优化与互补利用。在实际工程中,典型的应用场景包括工业园区能源站、城市区域能源互联网和微电网系统。
与传统单一能源系统相比,综合能源系统具有三个显著特征:首先,能源转换设备(如燃气轮机、电锅炉、热泵等)实现了不同能源载体间的灵活转换;其次,系统运行需要考虑电、气、热三种网络的不同动态特性;最后,优化目标需兼顾经济性、环保性和可靠性等多重指标。
2. 系统建模与数学表达
2.1 电力子系统建模
电力网络采用直流潮流模型简化计算,节点功率平衡方程为:
% 节点功率平衡方程示例 P_gen = P_load + B * theta; % B为电纳矩阵,theta为电压相角对于包含分布式电源的系统,需增加光伏、风机等可再生能源的出力模型。以风机为例,其出力可表示为:
P_wind = 0.5 * rho * A * v^3 * Cp; % rho空气密度,A扫风面积,v风速,Cp功率系数2.2 天然气子系统建模
天然气网络采用weymouth方程描述管道流量:
% 天然气管道流量方程 phi = sign(pi_m - pi_n) * C * sqrt(abs(pi_m^2 - pi_n^2)); % pi_m, pi_n为节点压力,C为管道常数压缩机模型需要额外考虑:
% 压缩机功耗模型 H = (pi_out/pi_in)^((gamma-1)/gamma) - 1; % 压比与绝热指数gamma2.3 热力子系统建模
供热网络采用质调节方式时,热功率方程为:
Q = c_p * m * (T_supply - T_return); % c_p比热容,m质量流量,T温度热网延迟特性需用节点法建模:
T_node(t+1) = sum(m_in.*T_in)/(sum(m_in)) + Q_loss; % 考虑热损失3. 耦合元件与接口建模
3.1 燃气轮机模型
燃气轮机作为电-气耦合的关键设备,其数学模型包括:
% 燃气轮机电气特性 P_gt = eta_gt * H_gas * phi_gas; % 发电效率*热值*燃气流量 % 排气余热回收 Q_exhaust = (1-eta_gt) * H_gas * phi_gas * eta_hr; % 余热回收效率3.2 电热泵模型
电热泵实现电-热转换,性能系数(COP)建模:
COP = T_condenser/(T_condenser - T_evaporator) * eta_carnot; % 卡诺效率修正3.3 储热装置模型
储热罐的动态特性表示为:
E_thermal(t+1) = E_thermal(t) + (Q_in - Q_out - Q_loss)*delta_t;4. 优化调度模型构建
4.1 目标函数设计
典型的多目标优化问题可转化为单目标加权求和:
% 经济性目标 f_cost = sum(c_elec.*P_grid + c_gas.*phi_gas); % 环保性目标 f_emission = sum(e_co2.*phi_gas); % 综合目标 minimize w1*f_cost + w2*f_emission;4.2 约束条件设置
系统运行需满足以下主要约束:
- 电力平衡:
sum(P_gen) == sum(P_load) + P_loss;- 天然气平衡:
sum(phi_in) == sum(phi_out) + phi_comp;- 热力平衡:
sum(Q_source) >= sum(Q_load) + Q_pipe_loss;4.3 时序耦合约束
考虑设备爬坡率限制:
-ramp_limit <= P_gt(t+1) - P_gt(t) <= ramp_limit;储能装置状态连续性:
E_min <= E_thermal <= E_max;5. YALMIP工具箱实现
5.1 变量定义
使用YALMIP定义决策变量:
P_grid = sdpvar(T,1); % 电网购电功率 phi_gas = sdpvar(T,1); % 燃气采购量 u_gt = binvar(T,N_gt); % 燃气轮机启停状态5.2 约束表达
构建约束条件示例:
Constraints = [sum(P_wind) + sum(P_gt) == P_demand,... sum(phi_pipe) <= phi_gas_max,... E_thermal(end) >= E_thermal(1)]; % 周期性能量平衡5.3 求解器配置
针对混合整数规划问题:
options = sdpsettings('solver','gurobi',... 'verbose',1,... 'gurobi.MIPGap',1e-4);6. MATLAB完整实现案例
6.1 系统参数初始化
% 电力网络参数 B = makeBmatrix(branch_data); % 生成电纳矩阵 P_load_profile = xlsread('load_data.xlsx'); % 天然气网络参数 C_gas = calculate_pipe_constant(diameter,length,friction_factor);6.2 优化问题求解
构建完整优化模型:
Objective = 0.7*f_cost + 0.3*f_emission; optimize(Constraints,Objective,options);6.3 结果可视化
绘制优化调度结果:
figure; subplot(3,1,1); plot(P_grid); title('电网购电功率'); subplot(3,1,2); plot(value(phi_gas)); title('燃气消耗'); subplot(3,1,3); plot(E_thermal); title('储热罐能量状态');7. 实际工程问题处理
7.1 不确定性问题处理
针对可再生能源出力不确定性:
% 采用鲁棒优化方法 P_wind_actual = P_wind_nominal + delta; Constraints = [Constraints, uncertain(delta), -0.2*P_wind_nominal <= delta <= 0.2*P_wind_nominal];7.2 大规模问题加速
对于大规模系统:
% 采用并行计算 parfor i = 1:N_scenarios optimize(Constraints{i},Objective{i},options); end7.3 数据接口实现
与SCADA系统数据交互:
% OPC UA数据采集 uaClient = opcua('localhost',4840); connect(uaClient); [P_load_actual,~] = readValue(uaClient,'ns=2;s=Load/MW');8. 典型问题排查与调试
8.1 不可行问题诊断
当模型不可行时:
diagnostics = optimize(Constraints,Objective); if diagnostics.problem == 1 [~,~,~,index] = check(Constraints); disp('导致不可行的主要约束:'); disp(Constraints(index(find(index)))); end8.2 求解性能优化
提高求解效率的技巧:
- 合理设置变量边界
P_gt = sdpvar(T,N_gt,'full','lower',0,'upper',P_gt_max);- 使用稀疏矩阵存储
B = sparse(B); % 电纳矩阵稀疏化- 预求解器选项调整
options.gurobi.Presolve = 2; % 激进预求解8.3 数值稳定性处理
避免数值问题的方法:
% 对weymouth方程进行平滑处理 epsilon = 1e-6; phi = C * sqrt(max(pi_m^2 - pi_n^2, epsilon));9. 模型验证与测试
9.1 静态测试案例
构建测试基准:
% 典型日场景测试 test_load = mean(P_load_profile,2); [P_opt,phi_opt] = run_optimization(test_load); assert(abs(sum(P_opt)-sum(test_load))<1e-3,'电力不平衡');9.2 动态响应测试
模拟故障工况:
% 模拟燃气中断 phi_gas(10:12) = 0; [P_opt_emergency] = run_optimization(P_load,phi_gas);9.3 经济性分析
计算成本节约:
base_cost = calculate_baseline_cost(); opt_cost = value(f_cost); saving = (base_cost - opt_cost)/base_cost * 100; fprintf('成本节约 %.2f%%\n', saving);10. 工程实践经验分享
在实际项目部署中,有几点关键经验值得注意:
数据质量保证:建立数据校验机制,对SCADA采集的负荷数据实施滑动平均滤波,消除异常值影响。我们曾遇到因温度传感器故障导致热负荷数据异常,最终使优化结果偏离实际需求的情况。
模型更新策略:建议采用滚动优化框架,每15分钟更新一次预测数据和优化结果。某工业园区项目实测表明,相比24小时静态优化,滚动优化可提升系统经济性约12%。
硬件部署考量:当处理超过100个节点的综合能源系统时,考虑将MATLAB程序编译为DLL组件,通过C#或Java调用,可显著提升与监控系统的集成度。
求解器选择技巧:对于包含大量二进制变量的调度问题,Gurobi通常比CPLEX表现更好。在某包含32台耦合设备的案例中,Gurobi求解时间缩短了40%。
热网延迟处理:对于大型供热网络,建议采用"节点温度法+时间延迟因子"的混合建模方法。实测表明,这种方法比纯节点法计算速度快3倍,同时保持足够的精度。