GAMS编写综合能源程序

    学习GAMS 一段时间编写了基于能源枢纽的程序,四节点,九节点的综合能源系统优化程序。本文先介绍一下能源枢纽的编程思路。GAMS编写综合能源程序_第1张图片

综合能源的相关论文有很多,自行查就可以了。

***************************************************************************************************

*先建立了时间T集合,后输入负荷和能源输入参数,

***************************************************************************************************

set t  period of time /1*24/
    tfirst(t);

    tfirst(t)=yes$(ord(t) eq 1);

Parameters p_wind(t) mei xiao shi lai feng liang (KW) /1  3600 ,2  3500,
            3 3100 , 4   2900,  5  2900 ,6  2800 ,
            7 2500 ,8   2200 , 9  2300 , 10  2400 ,
            11 2400 ,12  2400 ,  13 2300 ,14  2200 ,
            15 2100 ,16   2200 , 17 2000 ,18  1900 ,
            19 2000 ,20  2300 , 21 2600 ,22  2800 ,
            23 3200 ,24  3600 /
          Le(t)   load of electric (kw)    /1  1600,  2  1700,
            3  1800,   4  1800,  5  1800,   6   1950,
            7  2100,   8  2200,  9  2300,   10  2300,
            11  2350,  12  2350, 13  2350,  14  2300,
            15  2300,  16  2250, 17  2250,  18  2300,
            19  2350,  20  2450, 21  2400,  22  2100,
            23  1700,  24 1550   /
          Le_1(t)   load of 可平移负荷 (kw)    /1  400,  2  400,
            3  400,   4  400,  5  400,   6   400,
            7  400,   8  400,  9  400,   10  400,
            11  400,  12  400, 13 400,  14  400,
            15  400,  16  400, 17  400,  18  400,
            19  400,  20  400, 21  400,  22  400,
            23  400,  24 400   /
          Lh(t)   load of hot (kw)    /1  1400,  2  1400,
            3  1400,   4  1400,  5  1400,   6   1400,
            7  1100,   8  1100,  9  800,   10  800,
            11  1400,  12  1400, 13  1400,  14  800,
            15  800,  16  800, 17  1100,  18  1100,
            19  1100,  20  1100, 21  1250,  22  1250,
            23  1100,  24 1100   /
           Lg(t)   load of gas (kw)    /1  200,  2  200,
            3  200,   4  300,  5  250,   6   400,
            7  400,   8  450,  9  600,   10  700,
            11  700,  12  700, 13  650,  14  650,
            15  600,  16  700, 17  600,  18  600,
            19  700,  20  750, 21  900,  22  900,
            23  700,  24 650   /
           e(t)   price of electric (kw)    /1  10,  2  10,
            3    8,   4    9,  5   10,   6    13,
            7   18,   8   20,  9   21,   10   21,
            11  21,  12   20,  13  18,   14   17,
            15  16,  16   17,  17  19,   18   23,
            19  26,  20   24,  21  22,   22   20,
            23  17,  24   16   /
           g(t)   price of gas (kw)    /1  8.5,  2  8.5,
            3    8.5,   4    8.5,  5   8.5,   6    8.5,
            7    8.5,   8    8.5,  9   8.5,   10   8.5,
            11   8.5,   12   8.5,  13  8.5,   14   8.5,
            15   8.5,   16   8.5,  17  8.5,   18   8.5,
            19   8.5,   20   8.5,  21  8.5,   22   8.5,

            23   8.5,   24   8.5   /;

*************************************************************************************************************************

*接下来结束输入各种设备的参数,能源间的转化效率,等等

*EB电锅炉;GB气锅炉;MT微燃机,P2G设备;GS,HS,ES 分别是储气,储热,储电

*************************************************************************************************************************

scalar      elta_p2g  The efficiency of power to gas  /0.5/;
scalar      elta_MTe  Micro-gas turbine power generation efficiency /0.26/;
scalar      elta_MTh  Micro-gas turbine heat  efficiency /0.3/;
scalar      elta_EB   Electric boiler thermal efficiency /0.9/;

scalar      elta_GB   Gas boiler thermal efficiency      /0.85/;

scalar      Ebcmax       Electric boiler rated operating                      /1500/;
scalar      Ebcmin       minimum operating power of Electric boiler            /0/;
scalar      Ebc_ratemax     Electric boiler input power change rate              /1000/;
scalar      Ebc_ratemin     Electric boiler input power change rate              /-1000/;

scalar      Gbcmax       Gas boiler ratated operating                       /1000/;
scalar      Gbcmin       minimum operating power of Gas boiler               /0/;
scalar      Gbc_ratemax     Gas boiler input power change rate             /1000/;
scalar      Gbc_ratemin     Gas boiler input power change rate             /-500/;

scalar      MTcmax      micro gas turbine rated operating                     /800/;
scalar      MTcmin      minimum operating power of MT          /0/;
scalar      MT_ratemax     MT input power change rate             /200/;
scalar      MT_ratemin     MT input power change rate             /-200/;

scalar      P2Gcmax         P2G rated operating                     /0/;
scalar      P2Gcmin         minimum operating power of P2G          /0/;
scalar      P2G_ratemax     P2G input power change rate             /0/;
scalar      P2G_ratemin     P2G input power change rate             /0/;

scalar     pemax                     /4000/;
scalar     pemin                     /800/;


scalar     pgmax                     /4000/;
scalar     pgmin                     /0/;

scalar      GSmax       Natural gas tank capacity           /0/;
scalar      GSmin                   /0/ ;
scalar      GS_ratemax              /0/;
scalar      GS_0                    /0/;

scalar      HSmax       Thermal energy storage capacity        /0/;
scalar      HSmin                   /0/ ;
scalar      HS_ratemax              /0/;
scalar      HS_0                    /0/;

scalar      ESmax       Thermal energy storage capacity        /0/;
scalar      ESmin                   /0/ ;
scalar      ES_ratemax              /0/;

scalar      ES_0                    /0/;

 

*********************************************************************************************************************

*后边就是优化变量,方程求解了

*********************************************************************************************************************

positive variables

           pe(t)        Purchase power
           pg(t)        The amount of purchased natural gas
           pw(t)        Wind power generation


           pe2g(t)      power to gas
           pEB(t)       Electricity consumed by electric boilers
           pMT(t)       GAS consumed by micro gas turbine
           pGB(t)       GAS consumed by gas boiler


           WG(t)        GAS storage  xian you liang
           WH(t)        GAS storage  xian you liang
           WE(t)


Free variable
           pgs(t)       "Gas storage capacity"
           phs(t)
           pes(t)
           qifengliang
           Z  objective ;




*binary variable
*          U(t);


Equations p_e(t)           Electric load balancing
          p_h(t)           Heat load balance
          p_g(t)           Natural gas load balance
*shuru ce yue shu
          pwind_conmax(t)     Wind power generation constraints
          pe_conmax(t)
          pe_conmin(t)
          pg_conmax(t)
          pg_conmin(t)
* she bei yun xing yue shu
          Ebc_conmax(t)
          Ebc_conmin(t)
          dEbc_conmax(t)
          dEbc_conmin(t)
          Gbc_conmax(t)
          Gbc_conmin(t)
          dGbc_conmax(t)
          dGbc_conmin(t)
          MTc_conmax(t)
          MTc_conmin(t)
          dMTc_conmax(t)
          dMTc_conmin(t)
          P2Gc_conmax(t)
*         P2Gc_conmin(t)
*         dP2Gc_conmax(t)
* chu neng yue shu
         elc_storage
         ES_conmax(t)
         ES_conmin(t)
         WWE(t)
         WWE_conmax(t)
         WWE_conmin(t)


         gas_storage
         GS_conmax(t)
         GS_conmin(t)
         WWG(t)
         WWG_conmax(t)
         WWG_conmin(t)


         hot_storage
         HS_conmax(t)
         HS_conmin(t)
         WWH(t)
         WWH_conmax(t)
         WWH_conmin(t)




         qifeng
* mu biao han shu
          ff               Objective function    ;

*这几句是能源枢纽模型的主要函数
 p_e(t)..   pe(t)+pw(t)-pe2g(t)-PEB(t)+ elta_MTe*pMT(t)+pes(t)  =e= (Le(t)+Le_1(t));
 p_h(t)..   elta_MTh*pMT(t)+ pEB(t)*elta_EB+elta_GB*pGB(t)+phs(t) =e= Lh(t);
 p_g(t)..   pg(t)+elta_p2g*pe2g(t)- pMT(t)-pGB(t)+pgs(t) =e= Lg(t);


 pwind_conmax(t).. pw(t) =l= p_wind(t);
 pe_conmax(t)..   pe(t)=l= pemax;
 pe_conmin(t)..   pe(t)=g= pemin;
 pg_conmax(t)..   pg(t)=l= pgmax;
 pg_conmin(t)..   pg(t)=g= pgmin;

 Ebc_conmax(t)..  pEB(t) =l= Ebcmax;
 Ebc_conmin(t)..  pEB(t) =g= Ebcmin;
 dEbc_conmax(t)..(PEB(t+1)-PEB(t)) =l= Ebc_ratemax;
 dEbc_conmin(t)..(PEB(t+1)-PEB(t)) =g= Ebc_ratemin;
 Gbc_conmax(t).. pGB(t) =l= Gbcmax;
 Gbc_conmin(t).. pGB(t) =g= Gbcmin;
 dGbc_conmax(t)..(PGB(t+1)-PGB(t)) =l= GBc_ratemax;
 dGbc_conmin(t)..(PGB(t+1)-PGB(t)) =g= GBc_ratemin;
 MTc_conmax(t).. pMT(t) =l= MTcmax;
 MTc_conmin(t).. pMT(t) =g= MTcmin;
 dMTc_conmax(t)..(PMT(t+1)-PMT(t)) =l= MT_ratemax;
 dMTc_conmin(t)..(PMT(t+1)-PMT(t)) =g= MT_ratemin;
 P2Gc_conmax(t).. pe2g(t) =l= P2Gcmax;




elc_storage.. sum(t,pes(t)) =e= 0;
ES_conmax(t)..pes(t) =l= ES_ratemax;
ES_conmin(t)..pes(t) =g= -ES_ratemax;
WWE(t+1)..WE(t+1) =e= WE(t)-pes(t);
WWE_conmax(t).. WE(t) =l= ESmax;
WWE_conmin(t).. WE(t) =g= 0;


gas_storage.. sum(t,pgs(t)) =e= 0;
GS_conmax(t)..pgs(t) =l= GS_ratemax;
GS_conmin(t)..pgs(t) =g= -GS_ratemax;
WWG(t+1)..WG(t+1) =e= WG(t)-pgs(t);
WWG_conmax(t).. WG(t) =l= GSmax;
WWG_conmin(t).. WG(t) =g= 0;


hot_storage.. sum(t,phs(t)) =e= 0;
HS_conmax(t)..phs(t) =l= HS_ratemax;
HS_conmin(t)..phs(t) =g= -HS_ratemax;
WWH(t+1)..WH(t+1) =e= WH(t)-phs(t);
WWH_conmax(t).. WH(t) =l= HSmax;
WWH_conmin(t).. WH(t) =g= 0;


qifeng.. qifengliang =e=sum(t,(P_wind(t)-pw(t))) ;
ff..    z =e= sum(t,(e(t)*pe(t)+ g(t)* pg(t)) )   ;




model P2g /all/;
*---------------------------------------------------------
WG.fx(tfirst) = GS_0;
WH.fx(tfirst) = HS_0;
*---------------------------------------------------------
Solve p2g using LP minimizing z ;
 

display z.l,pe.l,pg.l,pw.l,p_wind,pe2g.l,PgB.l,PEB.l,Pmt.l,pgs.l,WG.L,qifengliang.l;

这个能源枢纽的程序写的很简陋,也很简单。当初初学的时候编写的程序,但是运行应该没问题。

 

 

上面是自己摸索的时候学的,没有太好的编程逻辑。

如果想较系统的学一下,我最近也有分享此类的内容

搜索“GAMS系列分享”,查看GAMS在电力系统(综合能源)中的应用!!!

搜索“GAMS系列分享”,查看GAMS在电力系统(综合能源)中的应用!!!

搜索“GAMS系列分享”,查看GAMS在电力系统(综合能源)中的应用!!!

 

 

 

你可能感兴趣的:(GAMS,综合能源,优化调度,电气)