【硕士论文复现】计及P2G厂站的电-气综合能源系统规划研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据


💥1 概述

参考下面一篇硕士论文:

P2G 技术是用电将 H2O 和 CO2 转化为 H2 或者 CH4 的过程,也就是一种将电能转换成气体的技术。随着电网与天然气网耦合程度的不断加深,P2G 技术应用范围不断扩大。随着 P2G 技术的日渐成熟,使其在电力系统的应用中受到越来越多的关注。由于安装容量的技术瓶颈、有限的利用效率及较高的安装和运行成本等因素,使得 P2G 技术未能大规模普及。

P2G 技术通常由两步过程来实现。首先,由电解 H2O 可以产生 H2 和 O2;然后,经过后续化学反应转化为可用气体。P2G 厂站作为综合能源系统的耦合单元,它将闭环系统替代了过去的开环系统,在电网中可以被当作负荷来消纳多余的新能源,在天然气网中充当气源的角色为天然气系统提供然气。P2G 技术的响应速度快且调度特性灵活,因此可在电力系统消纳弃风、提供储能、削峰填谷、提供调频等辅助服务中广泛的应用[27]。

目前接入对电-气互联系统的影响分析,仍处于起步阶段。文献[34]不但构建了两阶段的直流最优潮流模型,而且还构建了与其耦合的天然气网络的暂态模型,根据这两个模型,预测了电力网和天然气网的运行将会受 P2G 技术怎样的影响。文献[35]从 P2G 设备对电-气互联系统优化运行影响出发,分别从经济方面、能源利用方面和环保方面进行了分析。文献[36]对于 P2G 技术的接入,为使其利润最大化,电网和天然气网两个公司主体必然会进行博弈,为使二者互利共赢,因此,建构了这两个网络的协同优化模型。文献[37]构建了电-气互联系统均衡模型,它把 P2G 设备和燃气轮机视为耦合设备,而把天然气网和电网作为两个不同主体,研究系统优化运行受市场定价机制的影响。文献[38]建立了典型的能源中心模型,该模型中计及了 P2G 设备,并且采用了迭代的算法,求解了多能源系统的市场均衡点。

社会急速发展的过程中,充分利用可再生能源,可减轻对能源需求的增长及燃料能源紧缺之间的供需矛盾,同时也能缓解高污染工业的生产与环境保护之间的矛盾。当前学术界提出了综合能源系统(Integrated Energy System, IES)[1]可有效来提高新能源的利用率,在 IES 中,集冷、热、电等多种能源协同开发与利用,多种能源耦合并相互补充,有利于新能源规模化的接入系统,同时,还能进一步提升传统能源的利用率,推进能源的经济和可持续发展,从而,可提升能源系统整体的自愈能力和抵制自然灾害的能力,保证系统安全可靠的运行。此外,可以提高系统整体的基础设施利用率、节省社会消耗资金、提升资金利用效率,进一步发展经济型社会。

由于 IES 的建设还未完善,我国能源系统仍是以单一的传统电力系统为主要的供能系统,在对电力系统进行规划设计时,并没有充分考虑其他形式能源的影响,所以目前重要的研究课题之一就是能源系统中如何对有多种能源耦合的系统进行规划。

📚2 运行结果

部分代码:

function [Obj,gen_P,PF_D,u_state,GasFlow,GasPressure,GasSourceOutput,GasGenNeed,GasCost,C_inv,SCUC_value,C_wt,C_p2g,p_P2G,p_wt] = fun_P2G(POP,casename,Bbus,Bf,Pbusinj,Pfinj,P_WT)
% 安全系数,用于留一定的裕度,针对潮流安全约束
k_safe = 0.95;
% 初始化文件
initial
GasP2G_idx = [5 8 11 13];   % P2G节点
GasP2G_cap = ceil(10*POP')/baseMVA;    % P2G容量
%% 导纳矩阵计算
% [Ybus, Yf, Yt] = makeYbus(baseMVA, bus, M_branch);   % build admitance matrix
% [Bbus, Bf, Pbusinj, Pfinj] = makeBdc(baseMVA, bus, branch);       %直流潮流
%% 创建决策变量
% 电网
gen_P = sdpvar(n_gen, n_T);% 火电发电机出力 
gen_P_upper = sdpvar(n_gen, n_T);% 火电机组爬坡功率
u_state = binvar(n_gen, n_T); % 火电机组状态
PF_D  = sdpvar(n_branch, n_T);% 电力系统各支路功率
Va = sdpvar(n_bus,n_T);% 电力系统各节点相角
% P2G
p_wt = sdpvar(4,n_T); % 风机实际出力
P_WT_1 = [zeros(4,n_T);p_wt(1,:);zeros(2,n_T);p_wt(2,:);zeros(2,n_T);p_wt(3,:);zeros(1,n_T);p_wt(4,:);zeros(n_bus-13,n_T)];% 将P2G合并到电网对应节点
p_P2G = sdpvar(4,n_T);% P2G出力
P_P2G = [zeros(4,n_T);p_P2G(1,:);zeros(2,n_T);p_P2G(2,:);zeros(2,n_T);p_P2G(3,:);zeros(1,n_T);p_P2G(4,:);zeros(n_bus-13,n_T)];% 将P2G合并到电网对应节点
% 气网
GasFlow = sdpvar(n_GasBranch, n_T);         %各管道气流量
GasPressure2 = sdpvar(n_GasBus, n_T);       %各节点气压平方
GasSourceOutput = sdpvar(n_GasSource, n_T); %各天然气源节点出力
GasGenNeed = sdpvar(n_GasGen, n_T);         %各天然气发电机耗气
%% 初始化约束及目标函数
C = [];     %约束
SCUC_value = 0;
%% 添加安全约束
Add_SecurityConstraints
%% 功率平衡
Add_PowerFlow;
%% 爬坡约束
Add_Ramp;
%% 火电机组出力
Add_Huodian_UnitOutput;
%% 天然气网约束
Add_GasConstraints;
%% 火电二次费用函数
Add_Huodian_GenCost;
%% 天然气费用
Add_Gas_Cost;
%% 
%% P2G
C = [C, 0<=p_P2G(:,1:n_T)<=GasP2G_cap*ones(1,n_T)];
C = [C, 0<=p_wt(:,1:n_T)<=P_WT];
C = [C, p_P2G(:,1:n_T)+p_wt(:,1:n_T)==P_WT];

C_inv = sum(GasP2G_cap*baseMVA*558.4*1e4);
C_wt = sum(sum(67000*baseMVA*p_wt));
C_p2g = sum(sum(62000*baseMVA*p_P2G));
C_P2G = C_p2g+C_wt+SCUC_value+GasCost;
%% 求解器配置 
ops = sdpsettings('solver','cplex','verbose',0,'usex0',0);      
ops.gurobi.MIPGap = 1e-3;
ops.cplex.mip.tolerances.mipgap = 1e-3;% 收敛精度适度放大提高计算速度

%% 求解
result = optimize(C,C_P2G,ops);

if result.problem == 0 % problem =0 代表求解成功   
else
    error('求解出错');
end
Obj = 365*value(C_P2G)+C_inv;
%%  一些值的获取
gen_P = value(gen_P(:,:));%获取火电发电机出力
gen_P_upper = value(gen_P_upper);
PF_D = value(PF_D);%各支路功率获取
u_state = value(u_state(:,:));
gen_P_nl = value(gen_P_nl);
Va = value(Va);
SCUC_value = value(SCUC_value);
C_wt = value(C_wt);
C_p2g = value(C_p2g);
GasFlow = value(GasFlow);%管道天然气流量
GasPressure = sqrt(value(GasPressure2));%各节点气压
GasSourceOutput=value(GasSourceOutput);%天然气气源节点出力
GasGenNeed = value(GasGenNeed);%天然气发电机耗气
GasCost = value(GasCost);
p_P2G = value(p_P2G);
p_wt = value(p_wt);
% GasFlow2 = value(GasFlow2);
% GasFlow2_nl = value(GasFlow2_nl);
% GasFlowSymbol = value(GasFlowSymbol);
end

% figure
% gen_P = value(gen_P(:,:));%获取火电发电机出力
% bar(gen_P','stack')
% title('火电机组出力计划')
% legend('1#火电机组','2#火电机组','3#火电机组','4#火电机组','5#火电机组','6#火电机组')
% xlabel('时间')
% ylabel('功率')

% figure
% bar(GasSourceOutput','stack')
% title('天然气气源出力')
% legend('1#天然气气源','2#天然气气源','3#天然气气源','4#天然气气源','5#天然气气源','6#天然气气源')
% xlabel('时间')
% ylabel('功率')

% figure
% GGN1=GasGenNeed(1,:);GGN2=GasGenNeed(2,:);
% plot(GGN1','-*')
% xlim([1 24])
% grid
% hold on 
% plot(GGN2','-*')
% title('天然气发电机耗气量')
% legend('机组1','机组2')
% xlabel('时间')
% ylabel('功率')

% figure
% [XX,YY] =meshgrid(1:24,1:41 );
% mesh(XX,YY,PF_D);
% xlabel('时刻(h)');
% ylabel('支路序号');
% zlabel('功率');
% title('24小时支路功率图');

% figure
% [XX,YY] =meshgrid(1:24,1:20 );
% mesh(XX,YY,GasPressure);
% xlabel('时刻(h)');
% ylabel('气网节点');
% zlabel('气压');
% title('24小时气压分布图');

% figure
% [XX,YY] =meshgrid(1:24,1:19 );
% mesh(XX,YY,GasFlow);
% xlabel('时刻(h)');
% ylabel('气网支路');
% zlabel('管道天然气流量');
% title('24小时管道天然气流量');

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]宋楠. 计及P2G厂站的电-气综合能源系统规划[D].上海电机学院,2021.DOI:10.27818/d.cnki.gshdj.2020.000070.

🌈4 Matlab代码、数据

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值