Matlab|基于多目标粒子群算法的微电网优化调度(多约束多目标智能算法模板)

目录

[1 主要内容](#1 主要内容)

[2 部分代码](#2 部分代码)

[3 程序结果](#3 程序结果)

[4 下载链接](#4 下载链接)


1 主要内容

程序针对微电网优化模型进行优化求解,文件夹共包含四部分内容,分别是:原始多目标粒子群、改进多目标粒子群、改进多目标粒子群(勘误)和改进多目标粒子群(多约束模板),满足各位同学对于多目标粒子群算法各类需求。

多约束多目标智能算法优化模板,具体完善内容有一下几点:

1.利用好"可行状态"标志,在目标函数子程序(fitness)中集中将爬坡约束、soc约束、联络线功率约束等做成模板形式,只要是增加/修改约束,就在这部分按照同样的格式就轻松搞定。
2.固化无需修改的子函数,由于程序涉及到多个子函数,而且采用结构变量形式,调试难度比较大,因此,对这些子程序进行完善固化,只需要了解每个模块的功能即可,无需进行修改。

2 部分代码

复制代码
%多目标粒子群优化的实现
% 最小化问题的技术
%% 初始化参数
global PV;
global WT;
%蓄电池最大放电功率(正表示为电负荷供电,即放电)
BESSMax_dischar=30;
%蓄电池最大充电功率
BESSMax_char=-30;
%柴油机最大发电功率
DEMax=30;
%柴油机最小发电功率
DEMin=6;
%燃气轮机最大发电功率
MTMax=30;
%燃气轮机最小发电功率
MTMin=3;
%主网交互最大功率(正表示为电负荷供电)
GridMax=30;
%主网交互最小功率
GridMin=-30;
%% 种群初始化
if nargin==0  %nargin是判断输入变量个数的函数
    c = [0.1,0.2]; % 加速因子
    iw = [0.5 0.001]; % 惯性因子
    max_iter =100; % 最大迭代次数
    %各设备出力约束
    for n=1:144 %粒子长度为144(光伏,风电,储能,柴油,燃气轮机,主网的6*24个小时出力)
         if n<25
            lower_bound(n)=0;
            upper_bound(n) =PV(n);
          end
         if n>24&&n<49
            lower_bound(n)=0;
            upper_bound(n) =WT(n-24);
         end
         if n>48&&n<73
         lower_bound(n)=BESSMax_char;
         upper_bound(n) =BESSMax_dischar;
         end
         if n>72&&n<97
         lower_bound(n)=DEMin;
         upper_bound(n) =DEMax;
         end
          if n>96&&n<121
         lower_bound(n)=MTMin;
         upper_bound(n) =MTMax;
          end
          if n>120
         lower_bound(n)=GridMin;
         upper_bound(n) =GridMax;
         end
    end
    swarm_size=100; % 种群个数
    rep_size=100; % 存档库大小
    grid_size=7; % 每个维度的网格数
    alpha=0.1; % 通货膨胀率
    beta=2; % 领导人选择压力
    gamma=2; % 删除选择压力
    mu=0.1; % 变异速率
    problem=@prob; % 创建函数句柄为problem,函数为pro,可以简单理解为调用
end
%% 初始化粒子
fprintf('初始化种群中\n')
w = @(it) ((max_iter - it) - (iw(1) - iw(2)))/max_iter + iw(2); %更新惯性因子--改进粒子群算法
pm = @(it) (1-(it-1)/(max_iter-1))^(1/mu); %类比遗传算法引入变异操作,更新变异速率,在particle函数的78-84行
swarm(1,swarm_size) = Particle(); %调用Particle函数,从obj中得到swarm_size
for i = 1:swarm_size
    swarm(i)=Particle(lower_bound,upper_bound,problem);%调用Particle函数
    retry = 0;
    while swarm(i).infeasablity > 0 && retry < 100 %循环条件为:无不可行解且次数低于100
        swarm(i)=Particle(lower_bound,upper_bound,problem);%调用Particle函数
        retry = retry + 1;
    end
end

3 程序结果

4 下载链接

相关推荐
民乐团扒谱机6 小时前
【微实验】基于matlab的音频提取与信号滤波处理
开发语言·matlab·音视频
foundbug9998 小时前
基于混合整数规划的电池容量优化 - MATLAB实现
数据结构·算法·matlab
wearegogog12310 小时前
基于和差波束法的单脉冲测角MATLAB实现
人工智能·算法·matlab
小O的算法实验室16 小时前
2026年IEEE IOTJ,DNA序列启发相似性驱动粒子群算法+无人机与基站部署,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
feifeigo12317 小时前
基于遗传算法的矩形排样MATLAB实现
开发语言·matlab
Evand J18 小时前
【代码介绍】二维平面上的雷达跟踪与UKF(无迹卡尔曼滤波),高精度估计目标轨迹,输出真值、估计值、误差特性等
matlab·平面·雷达·滤波·定位·导航·跟踪
fengfuyao98518 小时前
基于遗传算法的分布式电源选址定容优化(考虑环境因素)
算法·matlab·平面
可编程芯片开发1 天前
基于VMD分解和Qlearning强化学习的biLSTM与DELM最优组合模型的超短期电力负荷预测算法matlab仿真
matlab·强化学习·bilstm·vmd·qlearning·delm·超短期电力负荷预测
jllllyuz1 天前
MATLAB 蒙特卡洛排队等待模拟程序
数据结构·matlab
机器学习之心1 天前
VMD-KAN-Transformer:时间序列预测的“三体运动”,我们用数学与深度学习找到了最优解
matlab·回归·vmd·kan-transformer