计及碳捕集电厂低碳特性的含风电电力系统源-荷多时间尺度调度方法

参考文献:《计及碳捕集电厂低碳特性的含风电电力系统源-荷多时间尺度调度方法》
摘要: 逐步提升风电等可再生能源发电占比,并对火电机组进行低碳化改造,辅之以多类需求侧资源,是实现能源电力碳达峰、碳中和目标的重要手段。首先,挖掘源荷两侧低碳资源并分析其低碳特性,源侧在碳捕集电厂中装设烟气旁路系统与溶液存储器,形成碳捕集电广综合灵活运行方式进而与风电协调配合:荷侧调用不同响应速度的价格型、激励型需求响应资源克服多时间尺度下碳捕集电厂综合灵活运行方式的局限,通过源荷资源协调优化,从而提高系统的低碳性能。其次,构建源荷协调的日前-日内-实时三阶段低碳经济调度模型,优化系统的负荷及旋转备用分配计划,并改善失负荷与弃风问题。最后,在改进的IEEE-39 节点系统中进行算例分析,结果表明本文调度方法能够利用源荷可调节资源的调度优势,实现电力系统低碳经济调度的目标。
关键词:碳捕集电厂;低碳特性:风电:需求侧资源:多时间尺度调度
1 综合灵活运行方式低碳特性分析
碳捕集电厂的灵活运行方式大致分为 3 类: 分流式运行方式、储液式运行方式与综合灵活运行方式.在碳捕集电厂同时引入烟气旁路系统与溶液存储器,即形成综合灵活运行方式。相较于储液式运行方式,碳捕集电广综合灵活运行方式可在某一时段根据系统需求主动排放 CO,到大气中,提高调度与决策的灵活性: 相较于分流式运行方式,碳捕集电厂综合灵活运行方式既可在负荷高峰将碳捕集能耗转移至负荷低谷,缓解负荷需求与捕碳需求的矛盾,又可在负荷低谷提高碳捕集能耗、降低碳捕集电厂净出力以消纳部分弃风。

上述碳捕集能耗的转移是通过调整溶液存储器的储液量实现的: 当某时段富液存储器储液量增多,贫液存储器储液量减少时 (即该时段本该捕集的 CO,只进行了吸收过程而并未实现解析过程),碳捕集能耗降低,净出力提升,反之亦然。换言之,溶液存储器可通过灵活调整储液量实现碳捕集能耗的能量时移,从而挖掘系统低碳潜力。

碳捕集电广综合灵活运行方式内部能量流动情况如图 1 所示。
在这里插入图片描述
由上述分析可知,综合灵活运行方式碳捕集电厂相较于分流式碳捕集电厂的净出力范围更大,如图2 所示。
在这里插入图片描述
通过源荷多时间尺度低碳经济调度方法,可利用风电及负荷预测精度随时间尺度缩短而提高的特性制定更加精确的调度计划,有效应对实时阶段失负荷、弃风问题的同时最大限度地挖掘系统的低碳性能,降低系统成本。
在这里插入图片描述
2 算例概述
本文基于改进的 IEEE-39 节点系统进行算例仿真,将火电厂 G1、G2 改造为碳捕集电厂,火电参数详见附录 B表 B1: 分别在节点 9、19、22引入300MW 风电场,系统结构如图 5 所示。附录 A 图 A1 为风电及负荷日前、日内、实时预测曲线:设定 A类、B 类、C 类IDR 的调用容量分别不超过总负荷的 5%、5%、3%; 价格需求弹性矩阵 E与与峰谷平三时段的划分详见附录 B表 B2 与表 B3;其余参数详见附录 B 表 B4。本文算例采用 CPLEX 进行优化求解。
在这里插入图片描述
3 程序运行结果
1)电平衡
在这里插入图片描述
2)热平衡
在这里插入图片描述
4 程序

%% 实时调度                   
clc
clear
close all
warning off % 关闭版本不兼容提示

%% 数据导入 
% load A_IDR
A_IDR=[1.74589264293358,1.74589264293358,1.74589264293358,1.74589264293358,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-77.0159429369334,-77.0159429369334,-77.0159429369334,-77.0159429369334,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73.6278967890000,73.6278967890000,73.6278967890000,73.6278967890000,1.64215350499977,1.64215350499977,1.64215350499977,1.64215350499977;
    -17.8950766400000,-17.8950766400000,-17.8950766400000,-17.8950766400000,-20.5940638400000,-20.5940638400000,-20.5940638400000,-20.5940638400000,-20.9823152000000,-20.9823152000000,-20.9823152000000,-20.9823152000000,-21.1814758400000,-21.1814758400000,-21.1814758400000,-21.1814758400000,-20.7030096000000,-20.7030096000000,-20.7030096000000,-20.7030096000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-19.0348424000000,-19.0348424000000,-19.0348424000000,-19.0348424000000,-20.3812280000000,-20.3812280000000,-20.3812280000000,-20.3812280000000;
    -20.0858924392000,-20.0858924392000,-20.0858924392000,-20.0858924392000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12.9925845112000,12.9925845112000,12.9925845112000,12.9925845112000,12.7131992288000,12.7131992288000,12.7131992288000,12.7131992288000,16.6082548632000,16.6082548632000,16.6082548632000,16.6082548632000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15.1456744432000,15.1456744432000,15.1456744432000,15.1456744432000,12.7460334904000,12.7460334904000,12.7460334904000,12.7460334904000,0,0,0,0,0,0,0,0,-9.89475745440003,-9.89475745440003,-9.89475745440003,-9.89475745440003,-19.4862098872000,-19.4862098872000,-19.4862098872000,-19.4862098872000,-20.7388867560000,-20.7388867560000,-20.7388867560000,-20.7388867560000;
    -5.02147310980000,-5.02147310980000,-5.02147310980000,-5.02147310980000,-5.01781581000000,-5.01781581000000,-5.01781581000000,-5.01781581000000,-5.19103884460000,-5.19103884460000,-5.19103884460000,-5.19103884460000,-5.17408227000000,-5.17408227000000,-5.17408227000000,-5.17408227000000,-4.82497634640000,-4.82497634640000,-4.82497634640000,-4.82497634640000,-4.50645875120000,-4.50645875120000,-4.50645875120000,-4.50645875120000,-4.93236797900000,-4.93236797900000,-4.93236797900000,-4.93236797900000,-4.57162519100000,-4.57162519100000,-4.57162519100000,-4.57162519100000,-4.42042063120000,-4.42042063120000,-4.42042063120000,-4.42042063120000,-3.71664747160000,-3.71664747160000,-3.71664747160000,-3.71664747160000,-3.24814612780000,-3.24814612780000,-3.24814612780000,-3.24814612780000,-3.17829980720000,-3.17829980720000,-3.17829980720000,-3.17829980720000,-4.15206371580000,-4.15206371580000,-4.15206371580000,-4.15206371580000,-4.09038655480000,-4.09038655480000,-4.09038655480000,-4.09038655480000,-3.73911266120000,-3.73911266120000,-3.73911266120000,-3.73911266120000,-3.83591721100000,-3.83591721100000,-3.83591721100000,-3.83591721100000,-4.03442780720000,-4.03442780720000,-4.03442780720000,-4.03442780720000,-3.78641861080000,-3.78641861080000,-3.78641861080000,-3.78641861080000,-3.18650837260000,-3.18650837260000,-3.18650837260000,-3.18650837260000,-4.83770668920000,-4.83770668920000,-4.83770668920000,-4.83770668920000,-4.51144597960000,-4.51144597960000,-4.51144597960000,-4.51144597960000,-4.79358702340000,-4.79358702340000,-4.79358702340000,-4.79358702340000,-4.87155247180000,-4.87155247180000,-4.87155247180000,-4.87155247180000,-5.18472168900000,-5.18472168900000,-5.18472168900000,-5.18472168900000];

A_IDR_P_tran=A_IDR(1,:); % 日前调度需求响应--电力转移
A_IDR_P_cut=A_IDR(2,:); % 日前调度需求响应--电力削减
A_IDR_H_tran=A_IDR(3,:); % 日前调度需求响应--热力转移
A_IDR_H_cut=A_IDR(4,:); % 日前调度需求响应--热力削减
% 调度周期
T=96;
% 风电预测功率
P_prew=(1/1.79)*1.4*[552.300186	589.654186	562.712186	516.618186	526.004186	526.726186	457.528186	493.628186	595.848186	551.768186	498.036186	531.324186	589.160186	561.002186	547.816186	583.650186	567.386186	648.326186	604.170186	528.398186	583.460186	570.730186	495.642186	500.848186	384.492186	331.520186	311.038186	316.586186	291.886186	313.356186	338.9000675	312.3131263	306.7788154	366.4881905	387.9301691	324.7722787	304.6930198	390.3218814	399.1100335	380.6716005	187.7772243	258.3049259	283.1119881	263.3386459	153.4867448	168.9772534	124.3690384	82.29158868	135.0483118	115.2749696	118.9181592	133.3518647	108.7491384	179.7774309	192.0697196	250.2773219	292.7997413	230.3927373	183.6431054	205.3353796	163.3413617	274.8340886	294.523999	246.0501095	185.8957647	294.2737035	297.221628	213.2892134	353.2321922	376.4886168	364.4886168	333.8486168	436.6086168	526.4086168	480.1949288	426.2349288	453.44	573.52	582.72	605.08	543.48	592.96	637.277248	627.442048	477.072768	658.608704	638.763456	603.706432	598.460992	696.1136	621.14752	675.78752	693.141184	674.432448	689.862784	679.153344];
% 电负荷
EleLoad=0.74*[1256.6848	1209.1268	1294.3448	1338.722	1306.5164	1391.4908	1376.0684	1303.0388	1394.3636	1417.724	1406.3084	1408.8032	1433.6	1431.1808	1220.94	1278.27	1308.636	1398.852	1497.762	1431.99	1268.568	1322.37	1312.164	1335.726	1392.93	1410.948	1481.256	1548.162	1610.658	1492.848	1558.872	1627.794	1563.786	1554.336	1287.09	1209.6	1393.812	1390.158	1543.374	1588.608	1685.124	1770.804	1848.294	1896.174	1881.81	1786.932	1622.754	1495.494	1464.624	1512.252	1547.154	1439.802	1332.198	1305.108	1316.196	1311.786	1339.044	1210.398	1190.868	1231.944	1282.806	1228.514	1148.252	1173.956	1254.792	1440.852	1476.72	1536.318	1730.106	1770.426	1857.114	1923.012	1949.85	1969.128	1964.214	1950.606	1808.1	1685.124	1498.14	1461.222	1344.098	1488.746	1422.064	1439.074	1426.978	1445.374	1425.466	1384.138	1354.052	1286.138	1488.746	1422.456	1414.336	1377.11	1349.768	1415.918];
% 热负荷
HeatLoad=(1/3.93)*0.7*[1478.665213	1409.599237	1375.159582	1361.999713	1388.879444	1408.572581	1418.559148	1418.185818	1452.532141	1457.198761	1468.585314	1462.238711	1475.771909	1452.438809	1425.185748	1401.665983	1399.799335	1354.439789	1292.187078	1231.521018	1178.041553	1265.02735	1288.080452	1285.747142	1416.785832	1384.586154	1378.239551	1417.532491	1357.98642	1283.3205	987.5912801	1056.50194	1190.31016	1240.87522	1158.89332	1184.80648	1110.16282	1043.31604	1011.66988	941.1539801	927.2801201	911.8010201	898.8444401	865.4783801	896.8952201	892.1941601	902.9722001	939.0901001	1120.59688	1165.5436	1119.1063	1113.02932	1156.14148	1148.22994	1112.68534	1068.88522	1082.64442	1049.62234	1059.94174	1024.5118	1080.23656	1076.79676	1141.57966	1200.62956	1191.45676	1132.52152	1004.4463	982.3169201	991.3750601	1062.901796	1148.020945	1145.50097	1092.414742	894.4984216	921.125442	1002.218144	1352.56823	1358.013378	1345.298549	1357.089735	1383.180466	1266.427336	1364.482582	1355.097642	1362.167174	1345.628357	1352.681646	1356.569756	1347.005506	1367.514373	1370.908669	1366.838104	1482.118512	1455.425446	1475.958574	1486.038473];
% 分时电价
gama_elec=100*[0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.84	0.84	0.84	0.84	0.84	0.84	0.84	0.84	0.84	0.84	0.84	0.84	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.69	0.64	0.64	0.64	0.64	0.64	0.64	0.64	0.64	0.55	0.55	0.55	0.55	0.55	0.55	0.55	0.55	0.29	0.29	0.29	0.29	0.29	0.29	0.29	0.29];

%% 相关参数
a=[0.00048,0.00031,0.0002]; % 成本系数a
b=[16.2,17.3,16.6]; % 成本系数b
c=[1000,970,700]; % 成本系数c
eg=[0.91,0.95,0.98]; % 碳排放系数
GT_P_max=[150,80];
E_bata=0.81; % 碳捕集效率
P_yita=[1.05,1.05,1.05]; % 再生塔和压缩机最大工作状态系数
P_lamda=[0.269,0.269,0.269]; % 单位捕碳量能耗
P_G_max=[400,455,200]; % 机组最大出力
P_G_min=[200,120,100]; % 机组最小出力
P_D1=0.25*0.5*[20,20,15]; % 碳捕集固定能耗
P_D=ones(3,96);
for i=1:3
    P_D(i,:)=P_D1(i).*ones(1,96);  
end
R_u_intra=[50,50,25]; % 机组上爬坡
M_MEA=61.08; % M_MEA的摩尔质量
M_co2=44; % 二氧化碳的摩尔质量
sita=0.4; % 再生塔解析量
CR=30; % 醇胺溶液浓度(%)
rou_R=1.01; % 醇胺溶液密
V_CR=[2000,2000,2000]; % 溶液储液装置容量
K_R=1.17; % 乙醇胺溶剂成本系数
fai=1.5; % 溶剂运行损耗系数   
h_min=[200,120,100];
h_max=[401,456,201];
h_gn=5;  
hl1=(h_max-h_min)./h_gn;
hl2=zeros(3,h_gn+1);
k_min=[-400,-455,-200];
k_max=[-199,-119,-99];
k_gn=5; 
kl1=(k_max-k_min)./k_gn;
kl2=zeros(3,k_gn+1);
for i=1:3
hl2(i,:)=h_min(i):hl1(i):h_max(i);
end
for i=1:3
kl2(i,:)=k_min(i):kl1(i):k_max(i);
end

%% 决策变量
% 电力源出力
GT_P = sdpvar(2,96,'full'); % 燃气轮机电出力
P_w = sdpvar(1,96,'full'); % 风电机组出力
P_G = sdpvar(3,96,'full'); % 火电机组出力
EB=sdpvar(2,96,'full'); % 电锅炉出力
P_s_intra=sdpvar(1,96,'full'); % 失电负荷功率
% 热力源出力
GT_H = sdpvar(2,96,'full'); % 燃气轮机热出力
EB_H=sdpvar(2,96,'full'); % 电锅炉热出力
H_s_intra=sdpvar(1,96,'full'); % 失热负荷功率
% 天然气
P_gas=sdpvar(2,96,'full'); % 天然气需求
% 碳捕集相关
E_G=sdpvar(3,96,'full'); % 碳捕集机组产生的总碳排放
E_total_co2=sdpvar(3,96,'full'); % 机组捕获的总碳排放
E_CG=sdpvar(3,96,'full'); % 储液装置提供的待捕集二氧化碳量
P_B=sdpvar(3,96,'full'); % 机组运行能耗
P_J=sdpvar(3,96,'full'); % 机组净出力
V_CA=sdpvar(3,96,'full'); % 机组净出力
V_FY=sdpvar(3,96,'full'); % 富液体积
V_PY=sdpvar(3,96,'full'); % 贫液体积
% 电力需求响应
P_tran_intra=sdpvar(1,96,'full'); % 系统可转移电负荷
P_cut_intra=sdpvar(1,96,'full'); % 系统可削减电负荷
P_DE_intra=sdpvar(1,96,'full'); % 系统经过过需求响应后的电负荷
H_tran_intra=sdpvar(1,96,'full'); % 系统可转移热负荷
H_cut_intra=sdpvar(1,96,'full'); % 系统可削减热负荷
H_DE_intra=sdpvar(1,96,'full'); % 系统经过过需求响应后的热负荷
gn=5;  
P_G_line= sdpvar(3,96,'full'); % 火电机组出力
w1=sdpvar(gn+1,T,'full');
w2=sdpvar(gn+1,T,'full');
w3=sdpvar(gn+1,T,'full');
w4=sdpvar(gn+1,T,'full');
w5=sdpvar(gn+1,T,'full');
z1=binvar(gn, T,'full');
z2=binvar(gn, T,'full');
z3=binvar(gn, T,'full');
z4=binvar(gn, T,'full');
z5=binvar(gn, T,'full');
y1= sdpvar(3,96,'full'); 
h_w1=sdpvar(h_gn+1,T,'full');
h_w2=sdpvar(h_gn+1,T,'full');
h_w3=sdpvar(h_gn+1,T,'full');
h_w4=sdpvar(h_gn+1,T,'full');
h_w5=sdpvar(h_gn+1,T,'full');
h_z1=binvar(h_gn,T,'full');
h_z2=binvar(h_gn,T,'full');
h_z3=binvar(h_gn,T,'full');
h_z4=binvar(h_gn,T,'full');
h_z5=binvar(h_gn,T,'full');
y2= sdpvar(3,96,'full'); 
k_w1=sdpvar(k_gn+1,T,'full');
k_w2=sdpvar(k_gn+1,T,'full');
k_w3=sdpvar(k_gn+1,T,'full');
k_w4=sdpvar(k_gn+1,T,'full');
k_w5=sdpvar(k_gn+1,T,'full');
k_z1=binvar(k_gn, T,'full');
k_z2=binvar(k_gn, T,'full');
k_z3=binvar(k_gn, T,'full');
k_z4=binvar(k_gn, T,'full');
k_z5=binvar(k_gn, T,'full');

%% 约束条件
C = [];  %约束条件初始
for t=1:96
    for i=1:3
    C = [C,         
        0<=E_CG(i,t),
        0<=P_B(i,t),
        E_G(i,t)==eg(i)*P_G(i,t), % 碳捕集机组产生的总碳排放   
        E_total_co2(i,t)==E_CG(i,t)+0.25*E_bata*eg(i)*(y1(i,t)-y2(i,t)), % 机组捕获的二氧化碳总量
        0<=E_total_co2(i,t)<=P_yita*E_bata*eg(i)*P_G_max(i),   
        P_B(i,t)==P_lamda(i)*E_total_co2(i,t), % 机组运行能耗
        P_G(i,t)==P_J(i,t)+P_D(i,t)+P_B(i,t), % 机组输出总功率
        P_G_min(i)-P_lamda(i)*P_yita*E_bata*eg(i)*P_G_max(i)-P_D(i)<=P_J(i,t)<=P_G_max(i)-P_D(i), % 碳捕集电厂净出力范围
        0<= P_w(t)<= P_prew(t), % 风电出力区间约束 
        sum(EB(:,t))+P_w(t)<=P_prew(t);
        P_G_min(i)<= P_G(i,t)<=P_G_max(i), % 火电机组出力约束
        0<=H_s_intra(t)<=20;
        0<=P_s_intra(t)<=20;
        ];
    end
end
C=[C,min(sum(R_u_intra),sum(P_G_max)-sum(P_G))>=0.01*max(P_DE_intra),]; % 旋转备用约束
C = [C, y1(1,:)==hl2(1,:).^2*h_w1];
C = [C, y1(2,:)==hl2(2,:).^2*h_w2];
C = [C, y1(3,:)==hl2(3,:).^2*h_w3];
C = [C, h_w1(1,:)<=h_z1(1,:)];
for i=2:h_gn
    C = [C, h_w1(i,:)<=h_z1(i-1,:)+h_z1(i,:)];
end
C = [C, h_w1(h_gn+1,:)<=h_z1(h_gn,:)];
C = [C, sum(h_z1)==ones(1,T)];
C = [C, h_w2(1,:)<=h_z2(1,:)];
for i=2:h_gn
    C = [C, h_w2(i,:)<=h_z2(i-1,:)+h_z2(i,:)];
end
C = [C, h_w2(h_gn+1,:)<=h_z2(h_gn,:)];
C = [C, sum(h_z2)==ones(1,T)];
C = [C, h_w3(1,:)<=h_z3(1,:)];
for i=2:h_gn
    C = [C, h_w3(i,:)<=h_z3(i-1,:)+h_z3(i,:)];
end
C = [C, h_w3(h_gn+1,:)<=h_z3(h_gn,:)];
C = [C, sum(h_z3)==ones(1,T)];
C = [C, h_w4(1,:)<=h_z4(1,:)];
for i=2:h_gn
    C = [C, h_w4(i,:)<=h_z4(i-1,:)+h_z4(i,:)];
end
C = [C, h_w4(h_gn+1,:)<=h_z4(h_gn,:)];
C = [C, sum(h_z4)==ones(1,T)];
C = [C, h_w5(1,:)<=h_z5(1,:)];
for i=2:h_gn
    C = [C, h_w5(i,:)<=h_z5(i-1,:)+h_z5(i,:)];
end
C = [C, h_w5(h_gn+1,:)<=h_z5(h_gn,:)];

C = [C, sum(h_z3)==ones(1,T)];
C = [C, y2(1,:)==kl2(1,:).^2*k_w1];
C = [C, y2(2,:)==kl2(2,:).^2*k_w2];
C = [C, y2(3,:)==kl2(3,:).^2*k_w3];
C = [C, k_w1(1,:)<=k_z1(1,:)];
for i=2:k_gn
    C = [C, k_w1(i,:)<=k_z1(i-1,:)+k_z1(i,:)];
end
C = [C, k_w1(k_gn+1,:)<=k_z1(k_gn,:)];
C = [C, sum(k_z1)==ones(1,T)];
C = [C, k_w2(1,:)<=k_z2(1,:)];
for i=2:k_gn
    C = [C, k_w2(i,:)<=k_z2(i-1,:)+k_z2(i,:)];
end
C = [C, k_w2(k_gn+1,:)<=k_z2(k_gn,:)];
C = [C, sum(k_z2)==ones(1,T)];
C = [C, k_w3(1,:)<=k_z3(1,:)];
for i=2:k_gn
    C = [C, k_w3(i,:)<=k_z3(i-1,:)+k_z3(i,:)];
end
C = [C, k_w3(k_gn+1,:)<=k_z3(k_gn,:)];
C = [C, sum(k_z3)==ones(1,T)];
C = [C, k_w4(1,:)<=k_z4(1,:)];
for i=2:k_gn
    C = [C, k_w4(i,:)<=k_z4(i-1,:)+k_z4(i,:)];
end
C = [C, k_w4(k_gn+1,:)<=k_z4(k_gn,:)];
C = [C, sum(k_z4)==ones(1,T)];
C = [C, k_w5(1,:)<=k_z5(1,:)];
for i=2:k_gn
    C = [C, k_w5(i,:)<=k_z5(i-1,:)+k_z5(i,:)];
end
C = [C, k_w5(k_gn+1,:)<=k_z5(k_gn,:)];
C = [C, sum(k_z3)==ones(1,T),y1>=y2,];

%% 其他约束
% 爬坡约束
for  t = 1: 95
    for i=1:3
         C = [C,   
         P_G(i,t+1)-P_G(i,t)<=R_u_intra(i), % 火电机组上爬坡出力约束
        ];
    end
    for j=1:2
        C = [C,  
         GT_P(j,t+1)-GT_P(j,t)<=0.25*50, % 燃气轮机上爬坡出力约束
         EB(j,t+1)-EB(j,t)<=0.25*30, % 电锅炉上爬坡出力约束
         ];
    end
end
for t=1:96
    for i=1:2
        C=[C,
            0<=P_gas(i,t)<=130, % 燃气供给功率
            0<=GT_P(i,t)<=GT_P_max(i), % 燃气供给功率
            GT_P(i,t)==0.98*P_gas(i,t), % 燃气轮机电功率    
            GT_H(i,t)==0.6*(GT_P(i,t)/0.4), % 燃气轮机供热功率
            0<=EB(i,t)<=P_prew(t)-P_w(t), % 电锅炉出力
            EB_H(i,t)==0.98*EB(i,t), % 电锅炉热出力
          ];
    end
end
% 综合灵活运行方式碳捕集电厂约束
for t=1:96
    for i=1:3
        C = [C,
        V_CA(i,t)==0.25*((M_MEA*E_CG(i,t))/(M_co2*sita*CR*rou_R)), % 释放二氧化碳所需的溶液体积
        0<=V_FY(i,t)<=V_CR(i), % 富液体积
        0<=V_PY(i,t)<=V_CR(i), % 贫液体积
        0<=(0.25*eg(i)*(y1(i,t)-y2(i,t)))<=P_G(i,t),
        ];
    end
end 
V_PY0=[1000,1000,1000];
V_FY0=[1000,1000,1000];
for i=1:3
    C=[C,
    V_PY0(i)==V_PY(i,96),% 贫液初始平衡
    V_FY0(i)==V_FY(i,96),% 富液初始平衡
    ];
end
for t=1:95
    for i=1:3
        C = [C,
        V_FY(i,t+1)==V_FY(i,t)-V_CA(i,t+1), % 富液变化
        V_PY(i,t+1)==V_PY(i,t)+V_CA(i,t+1), % 贫液变化
        ];
    end
end
gl1=(P_G_max-P_G_min)./gn;
gl2=zeros(3,gn+1);
for i=1:3
gl2(i,:)=P_G_min(i):gl1(i):P_G_max(i);
end
C = [C, P_G_line(1,:)==gl2(1,:).^2*w1];
C = [C, P_G_line(2,:)==gl2(2,:).^2*w2];
C = [C, P_G_line(3,:)==gl2(3,:).^2*w3];
C = [C, w1(1,:)<=z1(1,:)];
for i=2:gn
    C = [C, w1(i,:)<=z1(i-1,:)+z1(i,:)];
end
C = [C, w1(gn+1,:)<=z1(gn,:)];
C = [C, sum(z1)==ones(1,T)];
C = [C, w2(1,:)<=z2(1,:)];
for i=2:gn
    C = [C, w2(i,:)<=z2(i-1,:)+z2(i,:)];
end
C = [C, w2(gn+1,:)<=z2(gn,:)];
C = [C, sum(z2)==ones(1,T)];
C = [C, w3(1,:)<=z3(1,:)];
for i=2:gn
    C = [C, w3(i,:)<=z3(i-1,:)+z3(i,:)];
end
C = [C, w3(gn+1,:)<=z3(gn,:)];
C = [C, sum(z3)==ones(1,T)];
C = [C, w4(1,:)<=z4(1,:)];
for i=2:gn
    C = [C, w4(i,:)<=z4(i-1,:)+z4(i,:)];
end
C = [C, w4(gn+1,:)<=z4(gn,:)];
C = [C, sum(z4)==ones(1,T)];
C = [C, w5(1,:)<=z5(1,:)];
for i=2:gn
    C = [C, w5(i,:)<=z5(i-1,:)+z5(i,:)];
end
C = [C, w5(gn+1,:)<=z5(gn,:)];
C = [C, sum(z3)==ones(1,T)];
C = [C, P_G(1,:)==gl2(1,:)*w1];
C = [C, P_G(2,:)==gl2(2,:)*w2];
C = [C, P_G(3,:)==gl2(3,:)*w3];
% 电力需求响应
for t=1:96
    if 44<=t<=48 
        C = [C,
            -0.02*(EleLoad(t)+A_IDR_P_tran(t)+A_IDR_P_cut(t))<=P_cut_intra(t)<=0  % 电负荷削减
            ];
    elseif 72<=t<=80
         C = [C,
            -0.02*(EleLoad(t)+A_IDR_P_tran(t)+A_IDR_P_cut(t))<=P_cut_intra(t)<=0  % 电负荷削减
            ];
    else
        C = [C,
            P_cut_intra(t)==0  % 电负荷不削减
            ];
    end
end
% 热力需求响应
for t=1:96
    if 0<=t<=12 
        C = [C,
            -0.02*(EleLoad(t)+A_IDR_H_tran(t)+A_IDR_H_cut(t))<=H_cut_intra(t)<=0  % 热负荷削减
            ];
    elseif 88<=t<=96
         C = [C,
            -0.02*(HeatLoad(t)+A_IDR_H_tran(t)+A_IDR_H_cut(t))<=H_cut_intra(t)<=0  % 热负荷削减
            ];
    else
        C = [C,
            H_cut_intra(t)==0  % 热负荷不削减
            ];
    end
end
C = [C,
     -0.08*(EleLoad+A_IDR_P_tran+A_IDR_P_cut)<=P_tran_intra<=0.08*(EleLoad+A_IDR_P_tran+A_IDR_P_cut), % 电负荷转移
     sum(P_tran_intra)==0, % 电负荷转移守恒
     P_DE_intra==(EleLoad+A_IDR_P_tran+A_IDR_P_cut)+P_tran_intra+P_cut_intra, % 需求响应后的电负荷
     -0.08*(HeatLoad+A_IDR_H_tran+A_IDR_H_cut)<=H_tran_intra<=0.08*(HeatLoad+A_IDR_H_tran+A_IDR_H_cut), % 热负荷转移
     sum(H_tran_intra)==0, % 热负荷转移守恒
     H_DE_intra==(HeatLoad+A_IDR_H_tran+A_IDR_H_cut)+H_tran_intra+H_cut_intra, % 需求响应后的热负荷
     ];
     C = [C,
         P_w+sum(GT_P)+sum(P_J)+P_s_intra-P_DE_intra==0, % 电力平衡
         sum(EB_H)+sum(GT_H)+H_s_intra-H_DE_intra==0, % 热力平衡
     ];
 
 %% 目标函数
 F=0;
 for t=1:96
     F1(t)=0.35*gama_elec(t)*abs(P_tran_intra(t))+0.7*gama_elec(t)*abs(P_cut_intra(t)); % 电能需求响应成本
     F2(t)=0.35*abs(H_tran_intra(t))+0.7*abs(H_cut_intra(t)); % 热能需求响应成本
     for i=1:3
         F3(i,t)=a(i)*P_G_line(i,t)+b(i)*P_G(i,t)+c(i); % 火电机组燃料费用
         F4(i,t)=0.25*E_bata*eg(i)*(y1(i,t)-y2(i,t))+E_CG(i,t); % 碳捕集量
         F5(i,t)=E_G(i,t)-0.25*E_bata*eg(i)*(y1(i,t)-y2(i,t))-E_CG(i,t)-0.7*P_G(i,t); % 碳排放
     end
     F6(t)=50*sum(P_gas(:,t)); % 燃气费用
     F7(t)=gama_elec(t)*sum(EB(:,t)); % 电锅炉运行成本
     F8(t)=0.3*gama_elec(t)*(P_prew(t)-P_w(t)-sum(EB(:,t))); % 弃风惩罚
     F9(t)=(H_s_intra(t)+P_s_intra(t)); % 失负荷惩罚
 end
 F=F+sum(F1)+sum(F2)+sum(sum(F3))+1.17*1.5*sum(sum(F4))+12*sum(sum(F5))+sum(F6)+sum(F7)+sum(F8)+142.857*sum(F9);
 F=0.25*F;
 
 %% 求解器配置
ops=sdpsettings('solver','cplex','verbose',2,'usex0',0);
ops.cplex.mip.tolerances.mipgap=1e-6;
result=optimize(C,F,ops);
F=value(F);
display(['最优规划结果 : ', num2str(F)]);

%% 数据获取
GT_P=value(GT_P); % 燃气轮机电出力
P_w=value(P_w); % 风电机组出力
P_G=value(P_G); % 火电机组出力
EB=value(EB); % 电锅炉出力
H_s_intra=value(H_s_intra);
P_s_intra=value(P_s_intra);
% 热力源出力
GT_H=value(GT_H) ; % 燃气轮机热出力
EB_H=value(EB_H); % 电锅炉热出力
% 天然气
P_gas=value(P_gas); % 天然气需求
% 碳捕集相关
E_G=value(E_G); % 碳捕集机组产生的总碳排放
E_total_co2=value(E_total_co2); % 机组捕获的总碳排放
E_CG=value(E_CG); % 储液装置提供的待捕集二氧化碳量
P_B=value(P_B); % 机组运行能耗
P_J=value(P_J); % 机组净出力
V_CA=value(V_CA); % 机组净出力
y1=value(y1);
y2=value(y2);
% 电力需求响应
P_tran_intra=value(P_tran_intra); % 系统可转移电负荷
P_cut_intra=value(P_cut_intra); % 系统可削减电负荷
P_DE_intra=value(P_DE_intra); % 系统经过过需求响应后的电负荷
% 热力需求响应
H_tran_intra=value(H_tran_intra); % 系统可转移热负荷
H_cut_intra=value(H_cut_intra); % 系统可削减热负荷
H_DE_intra=value(H_DE_intra); % 系统经过过需求响应后的热负荷

%% 数据分析与画图
% 电力系统
figure
for t=1:96
    Plot_EleNet(1,t)=(P_J(1,t));
    Plot_EleNet(2,t)=(P_J(2,t));
    Plot_EleNet(3,t)=(P_J(3,t));
    Plot_EleNet(4,t)=P_w(t)+sum(EB(:,t));
    Plot_EleNet(5,t)=GT_P(1,t);
    Plot_EleNet(6,t)=GT_P(2,t);
    Plot_EleNet(7,t)= P_s_intra(t);
    Plot_EleNet(8,t)=sum(EB(:,t));
end
Plot_EleNet=Plot_EleNet';
bar(Plot_EleNet,'stacked');
hold on
plot(EleLoad+A_IDR_P_tran+A_IDR_P_cut,'k-','LineWidth',1.5);
plot(P_DE_intra,'r-o','LineWidth',1.5);
xlabel('时间/h');
ylabel('功率/kW');
title('电功率平衡');
hold on
legend('火电机组1','火电机组2','火电机组3','风电','燃气轮机1','燃气轮机2','失负荷','电锅炉','电负荷','P-DE');


figure
% 热力系统
for t=1:96
    Plot_HeatNet(1,t)=sum(GT_H(:,t));
    Plot_HeatNet(2,t)=sum(EB_H(:,t));
    Plot_HeatNet(3,t)=H_s_intra(t);
end
Plot_HeatNet=Plot_HeatNet';
bar(Plot_HeatNet,'stacked');
hold on
plot(HeatLoad+A_IDR_H_tran+A_IDR_H_cut,'k-','LineWidth',1.5);
plot(H_DE_intra,'r-o','LineWidth',1.5);
xlabel('时间/h');
ylabel('功率/kW');
title('热功率平衡');
hold on
legend('燃气轮机','电锅炉','失负荷','热负荷','H-DE');
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
捕集电厂MATLAB代码是一种用于计算和模拟捕集电厂运行的代码工具。它可以被用来建立捕集电厂的综合能系统时间尺度调度模型,包括日前调度和实时调度等功能。该代码可以考虑捕集电厂低碳特性和需求响应,以实现捕集电厂的灵活运行。 在近几十年来,排放量的增加对人类和社会的可持续发展构成了严重威胁。为了应对这个问题,我国提出了在2030年实现达峰,2060年实现中和的建设目标。在减方法中,捕集与封存技术被认为是一种成熟且可行的方法,特别是基于化学溶剂吸收的燃烧后捕集技术可以实现工业的大规模减。工业火电厂是二氧化排放的重要来之一,其运行排放量会随着外部电力需求和电价的波动而变化。因此,综合考虑电厂捕集系统,并开发具有灵活运行机制的系统调度方法对于解决这个问题非常关键。 基于信息间隙决策理论的捕集电厂调度是一种研究方法,可以用来优化捕集电厂运行。这种方法可以结合MATLAB代码来实现,通过在模型中考虑捕集电厂特性和需求响应,以实现最优的调度策略。这个方法可以在不同负荷波动下进行系统调度,以实现捕集电厂的灵活运行和减少排放。 综上所述,捕集电厂MATLAB代码是一种用于建立和优化捕集电厂运行的工具,可以考虑低碳特性和需求响应,并实现灵活的系统调度。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [计及捕集电厂低碳特性 和 需求响应 综合能系统时间尺度调度模型 MATLAB代码:关键词:捕集电厂 ...](https://download.csdn.net/download/nicknamexxx/88010501)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [基于信息间隙决策理论的捕集电厂调度(Matlab代码实现)](https://blog.csdn.net/m0_73907476/article/details/129202936)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电磁MATLAB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值