• 【经济调度】基于蝙蝠算法实现电力系统经济调度附Matlab代码


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

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

    🍊个人信条:格物致知。

    更多Matlab仿真内容点击👇

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

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

    ⛄ 内容介绍

    随着科学技术的日益进步,各行各业的发展几乎都要依赖电力的支持,电力系统稳定安全运行已经关系到国家经济的发展.在电力系统运行和控制中,经济调度计算问题研究占有重要地位,在满足可靠供电和电能质量前提下,对电力系统运行的经济性进行优化,使系统获得巨大的经济效益,因此,电力系统经济调度研究具有极大的实际应用价值.

    ⛄ 部分代码

    %

    % ======================================================== %    

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

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

    % This is a simple demo version only implemented the basic          %

    % idea of the bat algorithm without fine-tuning(微调)the parameters,     % 

    % Then, though this demo works very well, it is expected that       %

    % this demo is much less efficient than the work reported in        % 

    % the following papers:                                             %

    % (Citation details):                                               %

    % 1) Yang X.-S., A new metaheuristic bat-inspired algorithm,        %

    %    in: Nature Inspired Cooperative Strategies for Optimization    %

    %    (NISCO 2010) (Eds. J. R. Gonzalez et al.), Studies in          %

    %    Computational Intelligence, Springer, vol. 284, 65-74 (2010).  %

    % 2) Yang X.-S., Nature-Inspired Metaheuristic Algorithms,          %

    %    Second Edition, Luniver Presss, Frome, UK. (2010).             %

    % 3) Yang X.-S. and Gandomi A. H., Bat algorithm: A novel           %

    %    approach for global engineering optimization,                  %

    %    Engineering Computations, Vol. 29, No. 5, pp. 464-483 (2012).  %

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

    % Main programs starts here

    function [best,fmin,N_iter]=bat_algorithm(para)

    % Display help

     help bat_algorithm.m

    % Default parameters 默认参数

    if nargin<1,  para=[20 1000 0.5 0.5];  end

    n=para(1);      % Population size, typically10 to 40

    N_gen=para(2);  % Number of generations

    A=para(3);      % Loudness  (constant or decreasing)

    r=para(4);      % Pulse rate (constant or decreasing)

    % This frequency range determines the scalings

    % You should change these values if necessary

    Qmin=0;         % Frequency minimum

    Qmax=2;         % Frequency maximum

    % Iteration parameters

    N_iter=0;       % Total number of function evaluations   %这是什么意思???

    % Dimension of the search variables

    d=10;           % Number of dimensions 

    % Lower limit/bounds/ a vector

    Lb=-2*ones(1,d);

    % Upper limit/bounds/ a vector

    Ub=2*ones(1,d);   

    % Initializing arrays

    Q=zeros(n,1);   % Frequency

    v=zeros(n,d);   % Velocities

    % Initialize the population/solutions

    for i=1:n,

      Sol(i,:)=Lb+(Ub-Lb).*rand(1,d);

      Fitness(i)=Fun(Sol(i,:));

    end

    % Find the initial best solution

    [fmin,I]=min(Fitness);   %返回多个参数的时候用[ ],fmin接受第一个参数,I接受第二个参数

    %这里fmin是最小值,I是最小值的索引,也就是第几个

    best=Sol(I,:);

    % ======================================================  %

    % Note: As this is a demo, here we did not implement the  %

    % reduction of loudness and increase of emission rates.   %

    % Interested readers can do some parametric studies       %

    % and also implementation various changes of A and r etc  %

    % ======================================================  %

    % Start the iterations -- Bat Algorithm (essential part)  %

    for t=1:N_gen, 

    % Loop over all bats/solutions

            for i=1:n,

              Q(i)=Qmin+(Qmin-Qmax)*rand;%其中rand产生一个0到1的随机数

              v(i,:)=v(i,:)+(Sol(i,:)-best)*Q(i);

              S(i,:)=Sol(i,:)+v(i,:);

              % Apply simple bounds/limits

              Sol(i,:)=simplebounds(Sol(i,:),Lb,Ub);

              % Pulse rate

              if rand>r

              % The factor 0.001 limits the step sizes of random walks 

                  S(i,:)=best+0.001*randn(1,d);

              end

         % Evaluate new solutions

               Fnew=Fun(S(i,:));

         % Update if the solution improves, or not too loud

               if (Fnew<=Fitness(i)) & (rand

                    Sol(i,:)=S(i,:);

                    Fitness(i)=Fnew;

               end

              % Update the current best solution

              if Fnew<=fmin,

                    best=S(i,:);

                    fmin=Fnew;

              end

            end

            N_iter=N_iter+n;

             

    end

    % Output/display

    disp(['Number of evaluations: ',num2str(N_iter)]);

    disp(['Best =',num2str(best),' fmin=',num2str(fmin)]);

    % Application of simple limits/bounds

    function s=simplebounds(s,Lb,Ub)

      % Apply the lower bound vector

      ns_tmp=s;

      I=ns_tmp

      ns_tmp(I)=Lb(I);

      

      % Apply the upper bound vector 

      J=ns_tmp>Ub;

      ns_tmp(J)=Ub(J);

      % Update this new move 

      s=ns_tmp;

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    % Objective function: your own objective function can be written here

    % Note: When you use your own function, please remember to 

    %       change limits/bounds Lb and Ub (see lines 52 to 55) 

    %       and the number of dimension d (see line 51). 

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    function z=Fun(u)

    % Sphere function with fmin=0 at (0,0,...,0)

    z=sum(u.^2);

    %%%%% ============ end ====================================

    ⛄ 运行结果

    见主页链接

    ⛄ 参考文献

    [1]陈相吾. 基于改进蝙蝠算法的多能互补微电网优化调度研究[D]. 西安理工大学, 2019.

    ⛄ Matlab代码关注

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

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

  • 相关阅读:
    网易企业邮箱斩获双料奖项!产品实力与客户口碑双丰收!【公司邮箱怎么申请】
    亚马逊云科技 Build On-这可能是我离Amazon最近的一次
    Python 字典类型拓展(包括 MappingProxyType 只读字典, defaultdict 缺省字典和 ChainMap)
    Langchain-Chatchat-win10本地安装部署成功笔记(CPU)
    【Web】Ctfshow XSS刷题记录
    docker镜像创建、删除等相关操作
    spring cloud rebuild project z
    利用ETLCloud自动化流程实现业务系统数据快速同步至数仓
    腾讯万超:数字孪生迎来产业爆发期,腾讯积极布局
    探究平台化设计的核心思想和Lattice(TMF)的设计原则
  • 原文地址:https://blog.csdn.net/qq_59747472/article/details/128062847