当前位置: 首页 > news >正文

(Matlab)基于蝙蝠算法实现电力系统经济调度

目录

摘要:

1.蝙蝠优化算法的基本原理:

2.蝙蝠优化算法的流程:

3.仿真实验分析:

4.相关代码:


摘要:

基于Matalb平台,构建基于蝙蝠活动行为的蝙蝠优化算法,对一个含有6个火电机组的电力系统进行优化调度,其中优化调度的目标函数为火电机组运行成本最小,其中约束条件有:功率平衡约束,火电机组最大最小出力约束,火电机组爬坡约束,网络潮流约束,等。结果表明,所提的蝙蝠优化算法可以很好的完成电力系统优化调度决策任务。程序注释详细,出图美观,适合初学者学习入门智能优化算法或电力系统经济调度。

1.蝙蝠优化算法的基本原理:

蝙蝠算法是模拟蝙蝠发出和接收自身发出的超声波来捕食猎物这一行为提出的一

种全局型群智能优化算法。在该算法中,每只蝙蝠在搜索空间中的位置代表一个解,对

于不同的适应度函数,每只蝙蝠都有自己的适应度值,算法比较每只蝙蝠的适应度值来

找出当前全局最优位置,然后调整蝙蝠种群的脉冲发射频率、强度,朝着当前最优位置

不断搜索,最终找到全局最优解。

(1)  种群中的所有蝙蝠都用回声定位系统来判断距离,并且它们能够区分猎物与障

碍物。

(2)  蝙蝠在位置Xi以速度Vi 飞行。以固定频率fmin,强度Ao来搜捕猎物,它们能够

根据与猎物的距离自发调节发出声波的波长或者频率,在接近猎物时自发调整脉冲发射

频率ri。

(3)  假设声波强度的最小值为Amin ,最大值为Ao 。 蝙蝠的捕食过程可描述为:蝙蝠种群随机分布在搜索空间中,每只蝙蝠的位置为Xi( 1, 2,3,..,N),蝙蝠能够在位置Xi发出频率为fi强度为Ao的超声波搜索猎物,确定目标后,蝙蝠以速度Vi 向猎物飞行。并根据猎物与自己的距离实时调整飞行速度、声波强度和脉冲发射频率,逐渐向猎物靠近,最终成功捕食猎物。根据蝙蝠捕食过程,算法的迭代次数为t,蝙蝠个体i 发出超声波的频率、速度和位置在第t 代的更新公式如下:

(2-1)

(2-2、2-3)

当蝙蝠种群逐渐向全局最优解靠近时,算法就采用局部搜索策略,局部位置更新

公式如下:

(2-4)

2.蝙蝠优化算法的流程:

3.仿真实验分析:

以下为部分运行结果,主要是分为电力系统稳态运行情况下的和电力系统暂稳态运行情况下的:

4.相关代码:

本文仅展示部分代码,需要全部代码点这里🍞正在为您运送作品详情

clc; % 清除命令窗口中的任何工作或数据
clear; % 在使用前清除所有可变量的值
close all; % 关闭所有打开的图片
%% 导入机组参数与模型
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"];
% 分配输入与输出的各种参数
[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_demand_values = numel(demand); % 使用numel函数对矩阵的元素进行计数
print = fopen(doc_name,'w+');
% 定义全球变量,可用于所有函数
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
% 有5列燃料成本系数的燃料系数矩阵(发电机燃料消耗矩阵)
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];% 定义发电机功率限制
% 发电机上下爬坡功率定义
DRi= [85 22 15 16 9 16];
URi= [65 12 12 8 6 8];
beta = 1.75;
tao = 2.85;
time = 10; % 发电机暂稳态时间定义
instability = false(); % 将第一次计算设定为没有不稳定因素
n = length(fuel_coefficients(:,1)); %返回fuel_coefficients变量的长度
%% 循坏开始
for type = 1:numel(transmission_modes)% 在每个模式中循环往复
    transmission_type = transmission_modes(type);
    fprintf(print,strcat('ECONOMIC DISPATCH FOR _', ... 
        ' USING NOVEL BAT OPTIMIZATION ALGORITHM \n'));
    %% Step 1:找到B矩阵
    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];
。。。。。。。全部代码见链接。。。。。。。。

相关文章:

  • JVM学习(宋红康)之运行时数据区之虚拟机栈中方法返回地址
  • 科技云报道:事件响应,安全能力的关键一环
  • 【前端】关于Hash,MD5的学习
  • gsteamer日志输出实例
  • git与ssh配置方法及注意事项
  • indiegogo/kickstarter海外众筹是什么
  • 微信公众号如何运营和管理?
  • 《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第7章 数据挖掘
  • 15万果断给?2022年郫都区高新技术企业认定奖励、时间、条件及申报流程
  • 【校招VIP】[产品][985][5分]实习经历无法凸显个人能力
  • 浅析一下,什么是股票量化机器人?
  • Pai到用时方恨少
  • GPIO端口之AFIO的完全映射与部分映射的理解
  • SpringCloud搭建微服务之Zuul网关
  • Python使用Redis计算经纬度距离
  • python3.6+scrapy+mysql 爬虫实战
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • @jsonView过滤属性
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • CSS 三角实现
  • egg(89)--egg之redis的发布和订阅
  • EventListener原理
  • JavaScript设计模式系列一:工厂模式
  • JavaScript新鲜事·第5期
  • leetcode386. Lexicographical Numbers
  • magento2项目上线注意事项
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • redis学习笔记(三):列表、集合、有序集合
  • spark本地环境的搭建到运行第一个spark程序
  • Spring核心 Bean的高级装配
  • 构造函数(constructor)与原型链(prototype)关系
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 利用jquery编写加法运算验证码
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 1.Ext JS 建立web开发工程
  • 如何用纯 CSS 创作一个货车 loader
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • #{} 和 ${}区别
  • #stm32驱动外设模块总结w5500模块
  • #vue3 实现前端下载excel文件模板功能
  • (+4)2.2UML建模图
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (26)4.7 字符函数和字符串函数
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (八)Spring源码解析:Spring MVC
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (十五)使用Nexus创建Maven私服
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)甲方乙方——赵民谈找工作
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .CSS-hover 的解释
  • .Net 6.0 处理跨域的方式