基于蝙蝠优化算法的电力系统经济调度研究(Matlab代码实现)

 🍒🍒🍒欢迎关注🌈🌈🌈

📝个人主页:我爱Matlab


👍点赞➕评论➕收藏 == 养成习惯(一键三连)🌻🌻🌻

🍌希望大家多多支持🍓~一起加油 🤗

💬语录:将来的我一定会感谢现在奋斗的自己!

🍁🥬🕒摘要🕒🥬🍁

蝙蝠使用回声定位技术检测猎物、避开障碍物以及在黑暗的环境中找到栖息地。其可以发出非常响亮的脉冲并听取从周围物体反弹回来的回声,根据回声到双耳的不同时间与强度判断物体所在的方向和位置;还可以根据目标猎物或者障碍物的特征发出不同性质的脉冲。
大多数蝙蝠使用恒定频率信号进行回声定位,信号的大小取决于目标猎物。蝙蝠发出的脉冲持续时间很短,一般在8~10 ms之间,其频率通常在25~150 kHz的范围内。正常飞行的过程中,蝙蝠每秒发射10~20个脉冲;而在寻找猎物的过程中,尤其在靠近猎物飞行时,每秒可以发射约200个脉冲。

蝙蝠算法(Bat Algorithm,BA)是受蝙蝠回声定位捕食行为启发,提出的一种基于迭代优化技术的新型群智能优化算法。该算法自2010年由Yang教授提出以来,因其具有模型简单、收敛速度快、参数少等优点 ,已在工程优化 、模型识别等问题中得到较好的应用,很快得到了国内外学者的广泛关注,成为智能优化算法领域新的研究热点。

✨🔎⚡运行结果⚡🔎✨

 ​

 

 

 

💂♨️👨‍🎓Matlab代码👨‍🎓♨️💂

clc; % clear any work or data in the command window
clear all; % clear all varriable values before use
close all; % close all open figures

doc_name = 'ED_result.doc';
plot_Fcost = 'FuelCostCurve.png';
plot_Iterr = 'ItterationsCurve.png';
plot_Ploss = 'PowerLossCurve.png';
bar_Ploss = 'PowerLossChart.png';
bar_Fcost = 'FuelCostBar.png';
hvdc_Losses = 'HVDC_loses.png';
transmission_modes = ["HVAC","HVDC"];
source = ["6thermal","4thermal","2wind"];

% prelocating matrices that change in length
[power_loss,F_cost,iterrations,sw_loss,cond_loss,tl_loss,F_cost_inst] = deal(zeros);

demand = [120 150 180 210 240 270 300 330 360 390 420]; % load demands
load_demand_values = numel(demand); % numel counts the elements of matrix

print = fopen(doc_name,'w+');

% variables available to all functions
global fuel_coefficients B power_demand Pg_limits transmission_type ...
    Cond_loss SW_loss TL_loss convergence_time start_timing DRi URi ...
    n f_cost beta tao time instability inst_const

% fuel_coefficients matrix having 5 columns of fuel cost coefficients
fuel_coefficients = [0.00375 2.00 240  0 0;
    0.01750 1.75 200 0 0;
    0.06250 1.00 220 40 0.008;
    0.00834 3.25 200 30 0.009;
    0.02500 3.00 220 0 0;
    0.02500 3.00 190 0 0];
generator_limits = [50 200;20 80;15 50;10 35;10 30;12 40];
%RAMP RATE CONSTRAINTS
DRi= [85 22 15 16 9 16];
URi= [65 12 12 8 6 8];
beta = 1.75;
tao = 2.85;
time = 10; % instability time in seconds
instability = false(); % set the first calculations to be without instability
n = length(fuel_coefficients(:,1)); %Returns the length of the fuel_coefficients variable

for type = 1:numel(transmission_modes)% looping through each mode
    transmission_type = transmission_modes(type);
    fprintf(print,strcat('ECONOMIC DISPATCH FOR _',transmission_type,...
        ' USING NOVEL BAT OPTIMIZATION ALGORITHM \n'));
    %% Step 1:finding the B matrix
    loss_coef = [0.000218 0.000103 0.000009 -0.000010 0.000002 0.000027
        0.000103 0.000181 0.000004 -0.000015 0.000002 0.000030
        0.000009 0.000004 0.000417 -0.000131 -0.000153 -0.000107
        -0.000010 -0.000015 -0.000131 0.000221 0.000094 0.000050
        0.000002 0.000002 -0.000153 0.000094 0.000243 -0.000000
        0.000027 0.000030 -0.000107 0.000050 -0.000000 0.000358];
    %% Step 2: getting power demand and setting incremental cost(lamda)
    for idx = 1:load_demand_values
        power_demand = demand(idx);
        disp(strcat('Computing dispatch for >',num2str(power_demand),...
            'MW in >',transmission_type,', ',num2str(load_demand_values...
            -idx),' more values to go...'))
        disp('Working please wait ...')
        %% Step3: Deploying Novel Bat Algorithm (NBA)
        if (min(generator_limits(:,1)) <= power_demand)&&(power_demand <= sum(generator_limits(:,2)))
            % setting the parameters in the basic Novel Bat Algorithm (NBA)
            M = 1000;   %number of iterations
            pop = 30;
            gamma = 0.9;
            alpha = 0.99;
            r0Max = 1;
            r0Min = 0;
            AMax = 2;
            AMin = 1;
            freqDMax = 1.5;
            freqDMin = 0;

            % setting the additional parameters in Novel Bat Algorithm (NBA)
            G = 10;
            probMax = 0.9;
            probMin = 0.6;
            thetaMax = 1;
            thetaMin = 0.5;
            wMax = 0.9;
            wMin = 0.5;
            CMax = 0.9;
            CMin = 0.1;
            if strcmp(transmission_type,'HVDC') %assigning a different B for HVDC
                B = 0.45*loss_coef;
            else
                B = loss_coef;
            end

📜📢🌈参考文献🌈📢📜

[1]姜晨. 面向云制造多目标优化资源调度结果的预测方法研究[D].浙江工业大学,2019.DOI:10.27463/d.cnki.gzgyu.2019.000567.

MATLAB 图像信号处理 小波变换(18份) MATLAB通信仿真及应用实例详解 冈萨雷斯 数字图像处理 MATLAB版 冈萨雷斯数字图像处理MATLAB版图片 Visual C++ MATLAB图像处理与识别实用案例精选 MATLAB及其在电路与控制理论中的应用 MATLAB应用图像处理 北京交通大学《信号与系统》MATLAB 冈萨雷斯数字图像处理 北大研究生课件 MATLAB 7.X 图像处理 贺兴华编 2006年 电路与系统分析 使用MATLAB 信号与系统分析及MATLAB实现 MATLAB及在电子信息课程中的应用 现代通信系统 使用MATLAB MATLAB_usb摄像头视频获取 MATLAB 遗传算法 神经网络教程(17份) 神经网络理论与MATLAB 7实现 神经网络的综合基础 Matlab神经网络应用设计 MATLAB遗传算法工具箱及应 遗传算法与工程设计 遗传算法与工程优化 遗传算法:理论应用及软件实现 面向MATLAB工具箱的神经网络理论与应用 Matlab 6.5 辅助神经网络设计 车间调度及其遗传算法 神经网络及其在汽车工程中的应用 神经网络控制 神经网络PPT教程 BP神经网络详解与实例 机器学习 遗传算法原理及应用 人工神经网络技术及其应用 前馈神经网络工作机理分析与学习算法 MATLAB GUI 数值计算教程(21份) 清华 国防科大 中科院 建模课件合集 最全的MATLAB数学建模课件 MATLAB 7.x 界面设计与编译技巧 精通GUI 图形界面编程 MATLAB数值计算 工程计算可视化与MATLAB实现 偏微分方程的MATLAB解法 MATLAB 基础及数学软件 MATLAB工程数学应用 计算方法:算法设计及其MATLAB实现 MATLAB GUI 设计学习手记 Matlab数学建模算法全收录(数学建模比赛必备参考资料) 数理统计与MATLAB数据处理 数理统计与MATLAB数据处理 数值分析 现代数值计算方法 MATLAB和数学建模讲义 偏微分方程解的几道算例(差分、有限元) 含matlab程序 MATLAB GUI编程中文参考手册 MATLAB在数学建模竞赛中的应用 MATLAB接口 混合编程教程(9份) MATLAB扩展编程 MATLAB与C_C++混合编程 MATLAB混合编程与工程应用——目录在后 深入浅出 MATLAB 7.X 混合编程 C语言MATLAB接口 编程与实例 精通Matlab与C C++ 混合程序设计 MATLAB与外部程序接口 Simulink 自动控制 电机电气教程(19份) MATLAB7 SIMULINK6 建模仿真开发与高级工程应用 基于MATLAB Simulink的系统仿真技术与应用 Simulink建模与仿真 Simulink动态系统建模与仿真基础 电力电子和电力拖动控制系统的MATLAB仿真 MATLAB电机仿真精华50例 MATLAB与SIMULINK工程应用 MATLAB SIMULINK 与控制系统仿真 先进PID控制 MATLAB仿真 电力系统MATLAB-SIMULINK仿真与应用 滑模变结构控制MATLAB仿真 系统辨识及其MATLAB仿真 Simulink建模仿真基础及实例 PPT课件 Simulink建模仿真实例详解 PPT教程 入门教程 SIMULINK仿真基础 PPT教程 精品课件 Matlab与Simulink仿真
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值