基于改进粒子群算法的微电网多目标优化调度附Matlab代码

简介: 基于改进粒子群算法的微电网多目标优化调度附Matlab代码

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

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

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

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

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

⛄ 内容介绍

为了解决现有冷热电联供型综合能源系统大多只单一考虑系统机组投资成本或系统环境污染,影响系统整体优化运行的问题,以系统经济性和环保性为目标,对冷热电联供系统进行研究分析。构建含燃气轮机、燃气锅炉、电制冷机等机组 的冷热电联供系统优化模型并建立约束条件。结果表明粒子群算法能够同时兼顾系统的经济性和环保性,使系统运行更加优化,为之后的能源供给系统的规划提供前期依据。

⛄ 部分代码

classdef Repository

   properties

       swarm

       rep_size

       Grid

       grid_size

       alpha

       beta

       gamma

   end

   

   methods

       function obj = Repository(swarm,rep_size,grid_size,alpha,beta,gamma)

           if nargin>0

               obj.rep_size = rep_size;

               swarm = Particle.updateDomination(swarm);

               obj.swarm = swarm(~[swarm.isDominated]);

               obj.grid_size=grid_size;

               obj.alpha=alpha;

               obj.beta = beta;

               obj.gamma = gamma;

               obj.Grid=obj.grid();

               for i = 1:length(obj.swarm)

                   obj.swarm(i) = obj.swarm(i).updateGridIndex(obj.Grid);

               end

           end

       end

       function Grid = grid(obj)

           C = vertcat(obj.swarm.cost);

           cmin = min(C,[],1);

           cmax = max(C,[],1);

           dc = cmax - cmin;

           cmin = cmin - obj.alpha * dc;

           cmax = cmax + obj.alpha * dc;

           nObj = size(C,2);

           empty_grid.LB = [];

           empty_grid.UB = [];

           Grid = repmat(empty_grid,nObj,1);

           for j = 1:nObj

               cj = linspace(cmin(j),cmax(j),obj.grid_size+1);

               Grid(j).LB = [-inf, cj];

               Grid(j).UB = [cj, +inf];

           end

       end

       function leader = SelectLeader(obj)

           GI = [obj.swarm.GridIndex];

           OC = unique(GI);

           N = zeros(size(OC));

           for k = 1:length(OC)

               N(k) = length(find(GI==OC(k)));

           end

           P = exp(-obj.beta*N);

           P = P/sum(P);

           sci = Repository.RouletteWheelSelection(P);

           sc = OC(sci);

           SCM = find(GI==sc);

           smi = randi([1 length(SCM)]);

           sm = SCM(smi);

           leader = obj.swarm(sm);

       end

       function obj = DeleteOneRepMemebr(obj)

           GI=[obj.swarm.GridIndex];

           OC=unique(GI);

           N=zeros(size(OC));

           for k=1:length(OC)

               N(k)=length(find(GI==OC(k)));

           end

           P=exp(obj.gamma*N);

           P=P/sum(P);

           sci=Repository.RouletteWheelSelection(P);

           sc=OC(sci);

           SCM=find(GI==sc);

           smi=randi([1 length(SCM)]);

           sm=SCM(smi);

           obj.swarm(sm)=[];

       end

       function obj = update(obj,swarm)

           swarm = Particle.updateDomination(swarm);

           obj.swarm = [obj.swarm,swarm(~[swarm.isDominated])];

           obj.swarm = Particle.updateDomination(obj.swarm);

           obj.swarm = obj.swarm(~[obj.swarm.isDominated]);

           obj.Grid=obj.grid();

           for i = 1:length(obj.swarm)

               obj.swarm(i) = obj.swarm(i).updateGridIndex(obj.Grid);

           end

           Extra=length(obj.swarm)-obj.rep_size;

           for e=1:Extra

               obj=obj.DeleteOneRepMemebr();

           end

       end

   end

   methods (Static)

       function i = RouletteWheelSelection(P)

           i = find(rand<=cumsum(P),1,'first');

       end

   end

end

⛄ 运行结果

⛄ 参考文献

[1]李海平, 齐卓砾, 胡君朋. 基于FFT-DBN的行星齿轮箱齿面磨损故障智能判定方法研究[J]. 测控技术, 2020, 39(12):6.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
1天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
103 80
|
2天前
|
缓存 算法 搜索推荐
Java中的算法优化与复杂度分析
在Java开发中,理解和优化算法的时间复杂度和空间复杂度是提升程序性能的关键。通过合理选择数据结构、避免重复计算、应用分治法等策略,可以显著提高算法效率。在实际开发中,应该根据具体需求和场景,选择合适的优化方法,从而编写出高效、可靠的代码。
15 6
|
8天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
37 3
|
6天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
|
8天前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
22 2
|
21小时前
|
算法
基于EO平衡优化器算法的目标函数最优值求解matlab仿真
本程序基于进化优化(EO)中的平衡优化器算法,在MATLAB2022A上实现九个测试函数的最优值求解及优化收敛曲线仿真。平衡优化器通过模拟生态系统平衡机制,动态调整搜索参数,确保种群多样性与收敛性的平衡,高效搜索全局或近全局最优解。程序核心为平衡优化算法,结合粒子群优化思想,引入动态调整策略,促进快速探索与有效利用解空间。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
226 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
142 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
111 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度