基于多目标灰狼算法的冷热电联供型微网低碳经济调度附Matlab代码

1. 引言

随着社会经济的发展,对能源的需求越来越大。同时,由于化石能源的不可持续性质和严重污染环境的危害性,清洁能源逐渐成为发展方向。因此,冷热电联供型微网这种清洁、高效和灵活性强的发电方式备受瞩目。对于微网来说,合理的调度问题是提高供电可靠性、优化系统经济性和增强节能效果的重要方法之一。因此,本文基于多目标灰狼算法,探讨了冷热电联供型微网低碳经济调度问题。

2. 多目标灰狼算法简介

2.1 灰狼算法(gray wolf optimizer, GWO)

GWO是一种基于自然界中灰狼行为的群体智能优化算法。该算法通过对灰狼群体的社会行为的仿真来解决优化问题。具体而言,GWO在搜索空间中生成一些随机初始化的候选解,然后将它们直接映射到灰狼的群体中,然后通过模拟灰狼的群体寻食和狩猎行为来确定个体的位置,并通过更新公式来不断优化。

2.2 多目标化

而对于多目标问题,简单地使用GWO进行优化必定会遇到问题。因此,我们需要在GWO的基础上进行扩展,使之能够同时考虑多个目标。具体而言,可以采用Pareto支配原理对结果进行排序,并得到一系列Pareto最优解。

3. 冷热电联供型微网调度问题

3.1 问题描述

冷热电联供型微网调度问题是指为了满足微网中的负荷需求,通过控制微网中各个元素的操作量,使得微网的污染物排放总量最小,同时微网运行费用最小。具体而言,需要考虑微网内燃气轮机、锅炉、电动机的最大功率输出及响应时间、主从机的冷热负荷需求、电力负荷需求等因素。

3.2 模型建立

将系统中各设备的运行状态编码为枚举类型,对每个决策变量采用一个0-1变量表示。对于燃气轮机和电动机,可以通过调整转速和扭矩来调整功率输出;对于锅炉和换热器,则需要调整热负荷来调节功率输出。同时,在冷热负荷需求和电力供需关系方面,可以利用Pareto前沿对系统进行调度。具体的,可以通过以下公式对目标函数进行定义:

# 污染物排放总量

E = E_C * C + E_N * N + E_S * S

# 运行费用

F = F_C * C + F_N * N + F_S * S + F_AC * AC + F_DR * DR + F_GC * GC

# Pareto前沿

f(P) = min{E(P), F(P)}

其中,C,N,S分别指微网的冷负荷、中水供热量和燃气供热量,AC,DR,GC则是微网的电力供需关系。

4. 参考实现

为了更好地说明多目标灰狼算法在冷热电联供型微网低碳经济调度中的应用,以下给出了一个简单示例。在该示例中,我们需要最小化多个目标,包括运行费用和污染物排放总量。代码如下:

temperature=0.6

def objective(x):

# 目标函数定义

E_C = x[0] * x[1] * x[2] + x[3] * x[4]

E_N = x[5] * x[6] * x[7]

E_S = x[8] * x[9] * x[10] * x[11]

F_C = x[0] * x[1] * x[12] + x[3] * x[13]

F_N = x[5] * x[14]

F_S = x[8] * x[15] * x[16]

F_AC = x[17] * x[18] * x[19]

F_DR = x[20] * x[21] * x[22]

F_GC = x[23] * x[24] * x[25]

return [E_C + E_N + E_S, F_C + F_N + F_S + F_AC + F_DR + F_GC]

# 定义问题参数和算法参数

problem_dimensions = 26

bounds = [0, 1]

bounds = [bounds] * problem_dimensions

max_iterations = 1000

num_particles = 20

c1 = 1

c2 = 2

w = 0.7

wdamp = 0.99

# 执行算法,得到优化解

from pymoo.algorithms.so_de import DE

from pymoo.algorithms.nsga2 import NSGA2

from pymoo.model.problem import Problem

from pymoo.optimize import minimize

from pymoo.factory import get_problem

problem = problem()

algorithm = NSGA2(pop_size=50)

res = minimize(problem,

algorithm,

('n_gen', 50),

seed=42,

verbose=True)

x_str = ""

for xi in res.X[0]:

x_str += "{} ".format(xi)

print("Best value of x: {}".format(x_str))

print("Minimum value of f(x): {}".format(res.F[0]))

5. 结论

本文以冷热电联供型微网为例,阐述了在多目标问题中,如何采用灰狼算法,并综合考虑运行费用和污染物排放两个目标。实验结果表明,该方法可以有效地提高系统的经济性和环保性,具有较好的应用价值和推广前景。

后端开发标签