部分代码:
close all;
clear ;
clc;
global P_load; %电负荷
global WT;%风电
global PV;%光伏
%%
addpath('./NSGA2/')%添加算法路径,通过addpath('./NSGA2/')将路径添加到搜索路径中,以便 MATLAB 可以找到 NSGA2 文件夹下的函数。
TestProblem=1;
MultiObj = GetFunInfo(TestProblem);%函数用于获取多目标优化问题的信息,其中TestProblem是问题的编号。通过这个函数获取的信息包括问题名、目标函数等。
MultiObjFnc=MultiObj.name;%问题名
% Parameters
params.Np = 100; % Population size种群大小
params.Nr = 200; % Archive size 存档大小
params.maxgen = 50; % Maximum number of iteration 迭代次数
params.ngrid = 20; % Number of grids in each dimension 维度
[Xbest,Fbest] = NSGA2(params,MultiObj);
%% 画结果图ParetoFont
figure(1)
plot(Fbest(:,1),Fbest(:,2),'go');%在绘制 Pareto 前沿解集的图形时,使用了plot函数,将 Pareto 前沿解集的两个目标函数值分别作为 x 轴和 y 轴的数据,并以绿色圆点的形式绘制在图中。
legend('NSGA2');
xlabel('运行成本')
ylabel('环境保护成本')
%saveas(gcf,'./Picture/ParetoFont.jpg') %将图片保存到Picture文件夹下面
%% 比较不同目标函数寻优对调度结果的影响
%idxn=1 第1种.将两个目标函数值归一化相加,取相加后最小的目标值的粒子,即寻找折衷解并画图
%idxn=2 第2种寻找总成本最低时的解并画图
%idxn=3 第3种寻找运行成本最低时的解并画图
%idxn=4 第4种寻找环境保护成本最低时的解并画图
for idxn=1:4
pg=plotFigure(Xbest,Fbest,idxn);
end