基于Stackelberg博弈的综合能源系统交互策略

基于多主多从Stackelberg博弈的能源交易模型,通过分析综合能源系统中多个分布式能源站和用户之间的多种能源的交互方式,求解它们之间的均衡交互策略。

综合能源统模型 (IES)

多种能交易模型是建立在完全竞争市场的假设之上,所有的生产者都会以统一的市场价格与消费者进行交易。

Markdown

分布式能源站模型 (DES)

每个DES都需要确定单位电能和热能价格,优化生产所需的和燃气轮机的天然气量和余热锅炉的天然气量来实现收益最大化。

Markdown

能源转换方程

Markdown

输入天然气量

Markdown

能源用户模型(EU)

消费者剩余的最优需求响应如下:

Markdown

参数配置

1
2
3
4
5
6
7
8
9
10
{

"num_of_DES": "4",
"num_of_EU": "5",
"DES_c_k": "22",
"DES_u_n_e": "7",
"DES_u_n_h": "7",
"DES_v_n_e": "55",
"DES_v_n_h": "60"
}

主函数

求解所提博弈模型的Stackelberg均衡解的分布式算法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
do {
System.out.println("第" + i + "次博弈结果:\n" + "单位电价:" + p_e + "\t单位热价:" + p_h);
for (int k = 0; k < 4; k++) {
getD = D.getD(n_gt_e, n_st_e, n_hr_s, n_gt_h);
getE = E.getE(n_st_e, n_hr_s);
getF = F.getF(n_he, n_st_h, n_hr_s, n_gt_h, n_hr_h);
getH = H.getH(n_he, n_st_h, n_hr_s, n_hr_h);

getA_e = A_e.getA_e(u_e_array);
getA_h = A_h.getA_h(u_h_array);
getX = X.getX(getD, getF, a_e, a_h, getA_e, getA_h);
getY = Y.getY(getD, getE, getF, getH, a_e, a_h, getA_e, getA_h);
getZ = Z.getZ(getE, getH, a_e, a_h, getA_e, getA_h);
getG_k_gt = G_k_gt.getG_k_gt(getD, getE, getF, getH, getX, getY, getZ, p_e, p_h, c_k_array[k]);
getG_k_hr = G_k_hr.getG_k_hr(getD, getE, getF, getH, getX, getY, getZ, p_e, p_h, c_k_array[k]);
getO_k_e = O_k_e.getO_k_e(n_gt_e, n_st_e, n_hr_s, n_gt_h, getG_k_gt, getG_k_hr);
O_k_e_array[k] = getO_k_e;
getO_k_h = O_k_h.getO_k_h(n_he, n_hr_h, n_gt_h, n_st_h, n_hr_s, getG_k_gt, getG_k_hr);
O_k_h_array[k] = getO_k_h;
}
// 对于5个EU,for
for (int n = 0; n < 5; n++) {
getD_e = D_e.getD_e(v_e_array[n], u_e_array[n], p_e);
d_e_array[n] = getD_e;
getD_h = D_h.ghtD_h(v_h_array[n], u_h_array[n], p_h);
d_h_array[n] = getD_h;
}
// 更新p_e,p_h
getTau_e = Tau_e.getTau_e(lambda_e, miu_e, i);
getTau_h = Tau_h.getTau_h(lambda_h, miu_h, i);

delta_e = getTau_e * ((1.0 + a_e) * Arrays.stream(d_e_array).sum() - Arrays.stream(O_k_e_array).sum());
delta_h = getTau_h * ((1.0 + a_h) * Arrays.stream(d_h_array).sum() - Arrays.stream(O_k_h_array).sum());
p_e += delta_e;
p_h += delta_h;
i++;
} while ((Math.abs(delta_e) > theta || Math.abs(delta_h) > theta));
System.out.println("------\n纳什平衡:\n" + "单位电价:" + p_e + "\t单位热价:" + p_h);

运行结果

1
2
3
4
5
6
7
8
9
10
11
第24541次博弈结果:
单位电价:32.973567057858276 单位热价:36.509197408113884
第24542次博弈结果:
单位电价:32.97356805801566 单位热价:36.509197785003
第24543次博弈结果:
单位电价:32.97356905809445 单位热价:36.50919816186224
第24544次博弈结果:
单位电价:32.97357005809465 单位热价:36.50919853869158
------
纳什平衡:
单位电价:32.973571058016276 单位热价:36.50919891549104

结论

Markdown

1、DES数量增加,单位电价下降,单位热价下降。

Markdown

2、EU数量增加,单位电价不变,单位热价不变。

Markdown

3、DES成本参数增加,单位电价上升,单位热价上升。

Markdown

4、EU偏好参数增加,单位电价基本不变,单位热价上升。