• 【经济调度】基于蝙蝠算法实现电力系统经济调度附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电子书和数学建模资料

    🍅 仿真咨询

    1.卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

    2.图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

    3.旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划

    4.无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

    5.传感器部署优化、通信协议优化、路由优化、目标定位

    6.信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号

    7.生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化

    8.微电网优化、无功优化、配电网重构、储能配置

    9.元胞自动机交通流 人群疏散 病毒扩散 晶体生长

  • 相关阅读:
    手动导出URL 证书
    STM32CubeIDE实现printf重定向输出到串口
    vm2 组件存在沙箱逃逸漏洞
    jQuery学习:onload和read区别(时间早晚 监听个数)
    使用kubeadm快速部署一个K8s集群
    如何运行github上的项目
    jquery.i18n.properties.js使用及seo优化
    AidLux—极简的开发和部署体验
    10-集合3-Map
    在Qt设计师(Qt Designer )控件面板加入自定义控件
  • 原文地址:https://blog.csdn.net/matlab_dingdang/article/details/128049340