冷热电联供型综合能源系统(Combined Cooling, Heating and Power, CCHP)是当前能源领域的热门研究方向。这类系统通过能源梯级利用,将发电过程中产生的余热用于供热或制冷,整体能源利用率可达70%以上,远高于传统分供系统的50%。但在实际运行中,如何协调发电、供热、制冷等多个子系统的运行参数,同时兼顾经济性、环保性和可靠性,是一个典型的多目标优化问题。
粒子群优化算法(Particle Swarm Optimization, PSO)因其并行搜索能力强、收敛速度快的特点,特别适合解决这类高维非线性优化问题。而多目标PSO(MOPSO)的引入,可以同时优化多个相互冲突的目标函数,如运行成本最低、碳排放最少、能效最高等,为系统调度提供Pareto最优解集。
提示:在实际工程中,CCHP系统的优化调度通常需要考虑5-15个决策变量,包括燃气轮机出力、余热锅炉参数、电制冷机运行状态等,传统数学规划方法容易陷入局部最优。
一个完整的冷热电联供系统通常包含以下核心设备:
matlab复制% 典型设备效率模型示例
GT_efficiency = @(P_GT) 0.075*(P_GT/1000)^2 - 0.165*(P_GT/1000) + 0.44; % 燃气轮机效率曲线
HRU_eff = 0.85; % 余热锅炉效率
需要同时优化的三个核心目标函数:
math复制min\ f_1 = \sum_{t=1}^{24}(C_{gas}P_{gas,t} + C_{grid}P_{grid,t})
math复制min\ f_2 = \sum_{t=1}^{24}(k_{gas}P_{gas,t} + k_{grid}P_{grid,t})
math复制max\ f_3 = \frac{\sum(Q_{heat} + Q_{cool} + P_{elec})}{\sum P_{primary}}
系统运行需满足以下硬约束:
标准MOPSO在CCHP优化中的改进流程:
matlab复制%% MOPSO主循环框架
for iter = 1:max_iter
% 评估目标函数
[f1, f2, f3] = evaluate_objectives(particles);
% 更新Pareto存档
archive = update_pareto(particles, archive);
% 自适应网格划分
grid = adaptive_grid(archive);
% 选择全局最优
gbest = select_gbest(archive, grid);
% 更新粒子速度和位置
[v, x] = update_particles(v, x, pbest, gbest);
% 约束处理
x = apply_constraints(x);
end
典型决策变量包括:
注意:混合变量编码需要特殊处理,建议采用实数编码+阈值判断法处理二进制变量。
通过正交试验法确定的较优参数组合:
matlab复制function [pareto_front, optimal_solutions] = mopso_cchp()
% 初始化参数
params = init_parameters();
% 加载系统数据
load_data = load('cchp_data.mat');
% 初始化粒子群
[particles, velocities] = init_particles(params);
% MOPSO主循环
for iter = 1:params.max_iter
% 评估目标函数
objectives = evaluate_objectives(particles, load_data);
% 更新Pareto前沿
[archive, grid] = update_archive(particles, objectives);
% 更新粒子状态
[particles, velocities] = ...
update_particles(particles, velocities, archive, params, iter);
end
% 结果输出
pareto_front = archive.objectives;
optimal_solutions = archive.solutions;
end
matlab复制function [f1, f2, f3] = evaluate_objectives(particles, data)
n = size(particles, 1);
f1 = zeros(n,1); f2 = zeros(n,1); f3 = zeros(n,1);
for i = 1:n
% 解析决策变量
[P_GT, P_grid, ...] = decode_particle(particles(i,:));
% 计算经济成本
f1(i) = sum(data.C_gas * P_GT + data.C_grid * P_grid);
% 计算碳排放
f2(i) = sum(data.k_gas * P_GT + data.k_grid * P_grid);
% 计算能效
total_energy = sum(data.Q_demand + data.C_demand + data.P_demand);
primary_energy = sum(P_GT / data.GT_eff + P_grid / data.grid_eff);
f3(i) = total_energy / primary_energy;
end
end
matlab复制function feasible = check_constraints(particle, data)
% 解析决策变量
[P_GT, P_grid, ...] = decode_particle(particle);
% 功率平衡约束
power_balance = abs(P_GT + P_grid - data.P_demand) <= 0.05*data.P_demand;
% 设备运行约束
gt_ramp = all(abs(diff(P_GT)) <= data.GT_ramp);
% 储能SOC约束
soc = cumsum(data.HRU_eff * P_GT - data.H_demand);
soc_constraint = all(soc >= 0) && all(soc <= data.H_storage_max);
feasible = power_balance & gt_ramp & soc_constraint;
end
现象:算法早熟收敛,Pareto前沿分布不均匀
解决方案:
matlab复制if rand < mutation_prob
particle = particle + 0.1*(max_val-min_val)*randn(size(particle));
end
加速技巧:
matlab复制% 低效方式
for i = 1:n
f1(i) = sum(data.C_gas * P_GT(i,:));
end
% 高效方式
f1 = sum(data.C_gas * P_GT, 2);
matlab复制parfor i = 1:n
objectives(i,:) = evaluate_particle(particles(i,:));
end
matlab复制function plot_pareto_front(pareto_front)
figure;
scatter3(pareto_front(:,1), pareto_front(:,2), pareto_front(:,3), ...
'filled', 'MarkerFaceAlpha',0.6);
xlabel('运行成本(元)'); ylabel('碳排放(kg)'); zlabel('能效(%)');
title('CCHP系统三目标Pareto前沿');
grid on; rotate3d on;
end
提供三种典型决策方法:
matlab复制% 标准化目标值
norm_f = (pareto_front - min(pareto_front)) ./ ...
(max(pareto_front) - min(pareto_front));
% 计算综合满意度
weights = [0.5, 0.3, 0.2]; % 经济/环保/能效权重
satisfaction = 1 - sum(weights .* norm_f, 2);
% 选择最优折衷解
[~, idx] = max(satisfaction);
best_solution = archive.solutions(idx,:);
| 方案类型 | 运行成本(元) | 碳排放(kg) | 能效(%) | 适用场景 |
|---|---|---|---|---|
| 经济优先 | 12,560 | 2,850 | 68.7 | 商业用电高峰 |
| 环保优先 | 14,320 | 2,150 | 72.3 | 环保严控区域 |
| 平衡方案 | 13,210 | 2,450 | 70.5 | 常规运行模式 |
数据准备要点:
算法改进方向:
实际部署注意事项:
在最近的一个医院CCHP项目中,我们采用该方法后,相比传统调度方式年运行成本降低18%,碳排放减少23%。特别是在夏季制冷季,通过优化电制冷机与吸收式制冷机的配合,峰值用电减少达35%。