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 下载链接

相关推荐
小O的算法实验室2 天前
2025年IEEE TETCI SCI2区,一种用于二次无约束二进制优化的协同神经动力学算法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
rit84324992 天前
有限元法求转子临界转速的MATLAB实现
开发语言·matlab
Matlab程序设计与单片机2 天前
【机器人最短路径规划】基于标准蚁群算法
matlab·蚁群算法·路径规划问题
Marye_爱吃樱桃2 天前
MATLAB R2024b的安装、简单设置——保姆级教程
开发语言·matlab
IT猿手2 天前
基于控制障碍函数的多无人机编队动态避障控制方法研究,MATLAB代码
开发语言·matlab·无人机·openclaw·多无人机动态避障路径规划·无人机编队
Evand J2 天前
【MATLAB复现RRT(快速随机树)算法】用于二维平面上的无人车路径规划与避障,含性能分析与可视化
算法·matlab·平面·无人车·rrt·避障
s09071362 天前
【声纳成像】基于滑动子孔径与加权拼接的条带式多子阵SAS连续成像(MATLAB仿真)
开发语言·算法·matlab·合成孔径声呐·后向投影算法·条带拼接
IT猿手2 天前
基于 ZOH 离散化与增量 PID 的四旋翼无人机轨迹跟踪控制研究,MATLAB代码
开发语言·算法·matlab·无人机·动态路径规划·openclaw
IT猿手2 天前
基于控制障碍函数(Control Barrier Function, CBF)的无人机编队三维动态避障路径规划,MATLAB代码
开发语言·matlab·无人机·动态路径规划·无人机编队
SugarFreeOixi2 天前
MATLAB绘图风格记录NP类型
python·matlab·numpy