【优化调度】基于遗传算法实现水库优化调度问题实现发电量最大附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机

⛄ 内容介绍

水库调度,亦称水库控制运用,指按来水蓄水实况和水文预报,有计划地对入库径流进行蓄泄,以一定的客观标准作为调度准则,利用水库本身具有的库容调节能力,在时间和空间上使来水量被重新分配,进而获得最大的综合效益。兴利优化调度是指为了获取最大的综合效益,使水量、水能及水质等充分利用。本文基于水资源的可持续发展理论,以龙凤山水库为研究对象,在充分了解水库调度现状的前提下,为寻求水库获得最佳效益下的最大运行规律,衡量水库运行方式是否达到最优的标准,根据多年来水库天然来水和各部门用水情况,综合水库实际蓄水能力,将水库入库径流描述为确定型,建立以水库电站发电量最大为最优准则,利用智能优化算法的理论方法和技术,制定龙凤山水库调度控制方式,为龙凤山水库最大限度开发水资源提供参考依据。

⛄ 部分代码

function result=gafx(x)

%%-----------------------------------

%--------基本数据------------------

%%%%%%%%%%%%%%%%% 每月来水量,丰水年情况

qwan=[ 313  363  587  493  263  309  699 1110  1134  808  486  325 ];

%qwan=[402,352,702,457,227,432,418,1040,795,544,373,405]; 

%qwan=[598.21,699.12,564.58,667.52,195.60,195.60,195.60,946.89,3235.13,1505.35,951.89,730.58]; %丰水年

%qwan=[167.16,176.81,378.46,317.67,286.8,286.8,1061.56,1312.18,918.52,768.25,500.99,250.13];%平水年

%qwan=[332.3,295.18,664.44,365.42,26.15,45.32,122.58,950.26,622.13,141.65,236.98,334.18];%枯水年

%%%%%%%%%%%%%%% 每月来水,丰水年情况

qwl=[0,0,0,0,0,0,0,0,0,0,0,0];  %上下游水库区间流量w代表万家寨,l代表龙口

%%%%%%%%%%%%每月小时数

t(1)=31*24; t(3)= t(1); t(5)= t(1);

t(5)= t(1); t(7)= t(1); t(8)= t(1);

t(10)= t(1); t(12)= t(1);

t(2)=28*24;

t(4)=30*24; t(6)= t(4);t(9)= t(4);t(11)= t(4);

%-------------------------------------------------

     for j=1:12        %%%%%%% 水位推求库容

        if 952<=x(j)<955

            vw(j)=(4.508+(x(j)-952)/(955-952)*(4.548-4.508))*10^8;  %vw(j)上游水位对应的库容

        elseif 955<=x(j)<957

            vw(j)=(4.548+(x(j)-955)/(957-955)*(4.739-4.548))*10^8;

        elseif 957<=x(j)<960

            vw(j)=(4.739+(x(j)-957)/(960-957)*(4.936-4.739))*10^8;

        elseif 960<=x(j)<965

            vw(j)=(4.936+(x(j)-960)/(965-960)*(5.546-4.936))*10^8;

        elseif 965<=x(j)<970

            vw(j)=(5.546+(x(j)-965)/(970-965)*(7.756-6.563))*10^8;

        elseif 975<=x(j)<977.5

            vw(j)=(7.756+(x(j)-975)/(977.5-975)*(8.35-7.756))*10^8;

        elseif 977.5<=x(j)<980

            vw(j)=(8.35+(x(j)-977.5)/(980-977.5)*(8.962-8.35))*10^8;

        end

     end

             

     for j=1:11    %%%%%%%%%%%%%%% 下泄流量推水位

         qxw(j)=qwan(j)-(vw(j+1)-vw(j))/(t(j)*3600); % qxw(j)为出库流量

     end

         qxw(12)=qwan(12)-(vw(1)-vw(12))/(t(12)*3600);  %vw(13)=vw(1)

     %%%%%%%%%%%%%%%%%%%%%%%%%% 下泄流量水位关系

     for j=1:12

         if 0<=qxw(j)<85

             hxw(j)=898+(qxw(j)-0)/(85-0)*(899-898);  %下游流量对应的水位

         elseif 85<=qxw(j)<174

             hxw(j)=899+(qxw(j)-85)/(174-85)*(900-899);

         elseif 174<=qxw(i)<286

             hxw(j)=900+(qxw(j)-174)/(286-174)*(901-900);

         elseif 286<=qxw(j)<571

             hxw(j)=901+(qxw(j)-286)/(571-2860)*(902-901);

         elseif 571<=qxw(j)<878

             hxw(j)=902+(qxw(j)-571)/(878-571)*(903-902);

         elseif 878<=qxw(j)<1320

             hxw(j)=903+(qxw(j)-878)/(1320-878)*(904-903);

         elseif 1320<=qxw(j)<1860

             hxw(j)=904+(qxw(j)-1320)/(1860-1320)*(905-904);

         elseif 1860<=qxw(j)<2480

             hxw(j)=905+(qxw(j)-1860)/(2480-1860)*(906-905);

         end

     end

      %%%%%%%%%%%%%%%%%%%%%%%%%%%万家寨上下游水位差

      for j=1:11

          hw(j)=(x(j)+x(j+1))/2-hxw(j); %上游平均水位-下游水位  %%%%%% 此处修改

      end

          hw(12)=(x(12)+x(1))/2-hxw(12);

      %%%%%%%%%%%%%%%%%%%%%%% 发电量,暂取A=8.0

      for j=1:12

          nw(j)=8.0*qxw(j)*hw(j);  %出力系数取为8.0,可以改进,求每个月出力值 

          ew(j)=8.0*qxw(j)*hw(j)*t(j); %求每个月电量值

      end

      sw=ew(1); 

      for j=2:12

          sw=sw+ew(j);  % 电量累计 求和

      end

    

  

          

        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%梯级电站的总体年发电量

        result=sw;        %单库总发电量,sw万家寨,sl龙口

⛄ 运行结果

⛄ 参考文献

[1]王渤权. 改进遗传算法及水库群优化调度研究[D]. 华北电力大学(北京), 2018.

[2]陶猛. 龙凤山水库优化调度的群体智能算法研究[D]. 东北农业大学, 2016.

❤️ 关注我领取海量matlab电子书和数学建模资料

❤️部分理论引用网络文献,若有侵权联系博主删除

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

matlab科研助手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值