【微电网优化】基于改进粒子群算法的微网多目标优化调度附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] 陈深, 肖俊阳, 黄玉程,等. 基于改进量子粒子群算法的微网多目标优化调度[J]. 电力科学与技术学报, 2015, 30(2):7.

[2] 刘强. 基于改进粒子群算法多目标多微网经济优化调度[D]. 中国矿业大学, 2020.

[3] 杨健. 基于改进粒子群算法的微网实时能量优化调度[D]. 南京邮电大学.

[4] 程宇旭. 基于改进粒子群算法的微电网能量优化调度研究及实现[D]. 中南大学, 2014.

[5] 李兴莘, 张靖, 何宇,等. 基于改进粒子群算法的微电网多目标优化调度[J]. 电力科学与工程, 2021, 37(3):7.

⛳️ 代码获取关注我

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


相关文章
|
8月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
731 0
|
8月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
352 8
|
8月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
410 8
|
8月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
979 0
|
8月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
253 0
|
8月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
264 0
|
8月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
355 8
|
8月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
312 8
|
8月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
670 12
|
8月前
|
人工智能 数据可视化 网络性能优化
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
267 9

热门文章

最新文章