%%%%%%%%%%%%%%PSO求解梯级水库优化调度%%%%%%%%%%%%%%%%%
%------初始格式化--------------------------------------------------
clear all;
clc;
format short;

tic   %-----------------------计时开始

%------给定初始化条件----------------------------------------------
c1=1.4962;             %学习因子1
c2=1.4962;             %学习因子2
w=0.7298;              %惯性权重
MaxDT=20;            %最大迭代次数-------k次迭代
D=12;                  %搜索空间维数(未知数个数)-----D维空间
N=100;                  %初始化群体个体数目--------m个粒子
eps=10^(-6);           %设置精度(在已知最小值时候用)
%-----------------------------------------时段水位上下限
zmin=[970,970,970,970,952,952,952,952,952,952,970,970]   %%[888,888,888,888,888,893,888,888,888,888,888,888];
zmax=[977,977,977,980,980,977,977,957,977,970,977,977]   %%[898,898,898,898,898,898,893,892,892,898,898,898];

%------初始化种群的个体(可以在这里限定位置和速度的范围)------------
for i=1:N
    for j=1:12
    x(i,j)=zmin(j)+(zmax(j)-zmin(j))*rand; %水位初始化
    end
    
    k=0.2;        %%%%%%%%%%%%
    for j=1:12
    v(i,j)=k*(zmax(j)-zmin(j))*rand;   %速度  
    end
end

%------先计算各个粒子的适应度(发电量),并初始化Pi和Pg----------------------
for i=1:N
    p(i)=fxpso(x(i,:)); 
    pb(i,:)=x(i,:);     
end

gb=x(1,:);              
for i=2:N
    if fxpso(x(i,:))>fxpso(gb)     %%%%%%%%%%%%%注意大小号
        gb=x(i,:);             
    end
end

%------进入主要循环,按照公式依次迭代,直到满足精度要求------------
for t=1:MaxDT
    for i=1:N
        v(i,:)=w*v(i,:)+c1*rand*(pb(i,:)-x(i,:))+c2*rand*(gb-x(i,:));
        x(i,:)=x(i,:)+v(i,:);  
        for j=1:12              %%%%%%%%%%%%%%
            if x(i,j)<zmin(j)
                x(i,j)=zmin(j)+rand*(zmax(j)-zmin(j));      
            elseif x(i,j)>zmax(j)
                x(i,j)=zmin(j)+rand*(zmax(j)-zmin(j));
            end
        end
        if fxpso(x(i,:))>p(i)
            p(i)=fxpso(x(i,:));  %第i个粒子新的发电量
            pb(i,:)=x(i,:);      %第i个粒子新的水位值
        end

if p(i)>fxpso(gb)
            gb=pb(i,:);
        end
        y=fxpso(x(i,:));
        [e,f]=max(y);
    end
    gb=x(f,:);
    Gbest(t)=fxpso(gb); 
    xdai(t,:)=gb;        %最优水位值  
end

for i=1:MaxDT-1
    for j=2:MaxDT
        if Gbest(i)<Gbest(j)
            temp1=Gbest(i);
            Gbest(i)=Gbest(j);
            Gbest(j)=temp1;
            temp2=xdai(i);
            xdai(i,:)=xdai(j,:);
            xdai(j,:)=temp2;
        end
    end
end

gb=xdai(1,:)
Gbest=Gbest(1)
toc   %结束计时

%------最后给出计算结果

disp('*************************************************************')

disp('函数的全局最优位置为:')

Solution=gb'

disp('最后得到的优化极值为:')

Result=fxpso(gb)

disp('*************************************************************')
     x=gb;
D133

PSO求解梯级水库优化调度相关推荐

  1. 基于动态规划的水库优化调度

    1.动态规划概述    动态规划是最优化领域中的一个重要分支,是一种研究多段决策过程的递推最优化方法.所谓多段决策过程,是指根据时间.空间或其它特性可将过程分为若干互相联系的阶段,而在每个阶段必须作出 ...

  2. 【优化调度】基于粒子群算法求解梯级水电站调度问题matlab代码

    1 简介 粒子群算法( Particle Swarm Optimization, PSO)最早是由Eberhart和Kennedy于1995年提出,它的基本概念源于对鸟群觅食行为的研究.设想这样一个场 ...

  3. 【优化调度】基于粒子群算法求解水火电调度优化问题含Matlab源码

    1 简介 粒子群算法因其原理简单,易于编程,适于并行计算等优点而得到了广泛的应用.本文探讨和分析了Matlab粒子群算法工具箱,并提出了基于该工具箱来实现水电站优化调度计算的方法.计算实例表明,Mat ...

  4. PSO粒子群算法微电网优化调度(微电网孤岛运行优化调度)matlab程序

    PSO粒子群算法微电网优化调度(微电网孤岛运行优化调度)matlab程序 [含风电.光伏.微型燃机.储能蓄电池.燃料电池] 参考文献:基于改进粒子群算法的微电网优化调度 摘 要:当今全球普遍面临着能源 ...

  5. 3.基于智能算法(PSO/SSA/tGSSA)的微电网优化调度(matlab程序)

    目录 参考文章: 主要内容: 主程序: 不同算法运行结果 PSO运行结果: tGSSA运行结果: SSA运行结果: 资源地址 3基于改进粒子群算法的微电网优化调度以及SSA-MATLAB程序_基于粒子 ...

  6. 微电网日前优化调度入门:求解一道数学建模题

    最近看了一些微电网优化调度的论文,苦于无从下手之际,看到一道微电网日前优化调度相关的数学建模题:题目提供了一个简单的风光储微电网场景及测试数据,正好拿来练手.本文基于Python第三方库PuLP实现题 ...

  7. 【微电网优化】基于matlab粒子群算法求解微网经济调度和环境友好调度优化问题【含Matlab源码 2283期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[微电网优化]基于matlab粒子群算法求解微网经济调度和环境友好调度优化问题[含Matlab源码 2283期] 点击上面蓝色字体,直接付 ...

  8. 基于粒子群PSO算法的风光发电与电动汽车充放电协同优化调度matlab程序_电动汽车v2g

    V2G模型 基于粒子群PSO算法的风光发电与电动汽车充放电协同优化调度matlab程序_电动汽车v2g 1.针对大规模电动汽车无序接入电网给电力系统带来的负荷压力问题,提出一种含不确定性电源的电动汽车 ...

  9. 【优化调度】基于matlab遗传算法求解农业水资源调度优化问题【含Matlab源码 1776期】

    ⛄一.农业水资源调度简介 水是生命之源,水是生产之要,水是生态之基. 目前,全球约有14亿人口缺乏安全清洁饮用水,据估测到2025年全球约有23亿人口将会面临水资源短缺问题.因此,水即将成为制约社会以 ...

最新文章

  1. 1024,不讲技术,来一套程序员续命操~
  2. IOS开发 Block的学习
  3. pythonre正则表达式1012pythonre正则表达式_python re模块 正则表达式
  4. lstm中look_back的大小选择_基于机器学习检测僵尸网络中的域名生成算法
  5. 代码审计之DocCms漏洞分析
  6. android 底部导航,Android 底部导航之BottomNavigationBar
  7. 三年亏了近50亿,网易云音乐终于熬到上市了
  8. vs矩形框边框线显示被选中的区域;_Excel中,重复的数据高亮显示,如何快速删去?...
  9. java重定向cookie_web Java response sendRedirect()如何能携带设定的cookie | 学步园
  10. HTTP缓存机制在iOS中的应用和体现
  11. 产品经理原型工具选择:墨刀和axure的区别?
  12. RabbitMQ None of the specified endpoints were reachable 错误 解决方案
  13. 使用REPT功能设置行高
  14. Js去除路径和文件后缀名
  15. linux下将多个文件去除文件头合并_Linux下把多个文件合并成一个文件 - 卡饭网...
  16. 牛刀:中国房价的买点还没有…
  17. 三万字,七十图详解计算机网络六十二问(建议收藏)
  18. python井字棋ai,python 井字棋(Tic Tac Toe)
  19. 魔金多商户商城平台管理
  20. 搭建zerotier moon中转服务器实现虚拟局域网稳定快速互访

热门文章

  1. 动态加载javascript和css
  2. 【转】同步与异步复位以及相关的亚稳态状况与设计可靠性
  3. ADO.NET中异步处理的方式
  4. STL_Hash_map
  5. linux安装apache mysql tomcat
  6. 概率论与数理统计中的算子半群 第一讲 Banach-Steinhaus定理1 Baire‘s Category与Banach-Steinhaus定理的证明
  7. UA MATH523A 实分析3 积分理论例题 判断函数可积性的一个题目
  8. 欧拉定理和C语言实现 - win32版
  9. Proxy + Reflect 实现 响应的数据变化
  10. Hadoop权威指南学习笔记三