NSGA-II求解微电网多目标优化调度(MATLAB)

一、NSGA-II简介

NSGA-Ⅱ算法是Kalyanmoy Deb等人于 2002年在 NSGA 的基础上提出的,它比 NSGA算法更加优越:它采用了快速非支配排序算法,计算复杂度比 NSGA 大大的降低;采用了拥挤度和拥挤度比较算子,代替了需要指定的共享半径 shareQ,并在快速排序后的同级比较中作为胜出标准,使准 Pareto 域中的个体能扩展到整个 Pareto 域,并均匀分布,保持了种群的多样性;引入了精英策略,扩大了采样空间,防止最佳个体的丢失,提高了算法的运算速度和鲁棒性。

NSGA-Ⅱ就是在第一代非支配排序遗传算法的基础上改进而来,其改进主要是针对如上所述的三个方面:

①提出了快速非支配排序算法,一方面降低了计算的复杂度,另一方面它将父代种群跟子代种群进行合并,使得下一代的种群从双倍的空间中进行选取,从而保留了最为优秀的所有个体;

②引进精英策略,保证某些优良的种群个体在进化过程中不会被丢弃,从而提高了优化结果的精度;

③采用拥挤度和拥挤度比较算子,不但克服了NSGA中需要人为指定共享参数的缺陷,而且将其作为种群中个体间的比较标准,使得准Pareto域中的个体能均匀地扩展到整个Pareto域,保证了种群的多样性。

二、微网系统运行优化模型

微电网优化模型介绍:

weixin的博客_CSDN博客46204734/article/details/132700070?csdnshare_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132700070%22%2C%22source%22%3A%22weixin_46204734%22%7D

三、NSGA2求解微电网多目标优化调度

(1)部分代码

close all;
clear ; 
clc;
global P_load; %电负荷
global WT;%风电
global PV;%光伏
%%
addpath('./NSGA2/')%添加算法路径
TestProblem=1;
MultiObj = GetFunInfo(TestProblem);
MultiObjFnc=MultiObj.name;%问题名
% Parameters
params.Np = 100;        % Population size
params.Nr = 200;        % Archive size
params.maxgen = 200;  % 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),'ko');
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:4pg=plotFigure(Xbest,Fbest,idxn);
end

(2)部分结果

pareto前沿:

 第1种.将两个目标函数值归一化相加,取相加后最小的目标值的粒子,即寻找折衷解并画图

第2种寻找总成本最低时的解并画图

第3种寻找运行成本最低时的解并画图

第4种寻找环境保护成本最低时的解并画图

四、完整MATLAB代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/164236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Design Guidelines for 100 Gbps

文章目录 Stratix V GT Transceiver ChannelsCFP2 Host Connector Assembly and PinoutStratix V GT to CFP2 Interface Layout DesignBoard Stack Up DimensionsExample Design Channel PerformanceSimulation Results for Stratix V GT to CFP2 Connector Layout Design Desi…

特征工程完整指南 - 第二部分

苏米特班迪帕迪亚 照片由Dan Cristian Pădureş在Unsplash上拍摄 一、说明 DATA,通常被称为原油,需要经过加工和清洁才能有效地用于各种用途。正如我们不直接使用来自其来源的石油一样,数据也经过类似的处理以提取其真正价值。 二、特征选…

LabVIEW中如何达到NI SMU最大采样率

LabVIEW中如何达到NI SMU最大采样率 NISMU的数字化仪功能对于捕获SMU详细的瞬态响应特性或表征待测设备(DUT)响应(例如线性调整率和负载调整率)至关重要。没有此功能,将需要一个外部示波器。 例如,假设在…

Docker start/stop/restart 命令

docker start:启动一个或多个已经被停止的容器。 docker stop:停止一个运行中的容器。 docker restart:重启容器。 语法 docker start [OPTIONS] CONTAINER [CONTAINER...]docker stop [OPTIONS] CONTAINER [CONTAINER...]docker restart…

设计循环队列(详解)

呀哈喽,我是结衣 今天给大家带来的内容如标题所述,我们来设计环形队列,虽然队列没有讲,但是我就是想讲啊。那么环形队列现在开始。 队列的属性 在设计环形队列前,我们先要了解队列的特点(先进先出&#x…

鸿蒙(HarmonyOS)应用开发——ArkTs学习准备

介绍 前面我们已经介绍了,如何安装HarmonyOS的IDE ,那么现在我们来介绍一下。HarmonyOS 开发的语言——ArkTs. ArkTS 是HarmonyOS的开发语言,他是typescript 的扩展,而typesrcipt是javascript的超集,如果你不太熟悉typescript语法…

qml Loader使用介绍

QML Loader 是 Qt Quick 框架中的一个元素,它允许你动态地加载和卸载 QML 组件。Loader 的作用主要体现在以下几个方面: 延迟加载:Loader 允许你在需要时才加载组件,而不是在应用程序启动时一次性加载所有组件。这样可以加快应用程序的启动时间,因为它只需要初始化用户当前…

MIT_线性代数笔记:列空间和零空间

目录 前言子空间综述列空间 Column space零空间(或化零空间)Nullspaceb 值的影响 Other values of b 前言 本节继续研究子空间,特别是矩阵的列空间(column space)和零空间(nullspace)。 子空间…

FreeRTOS的并行与并发思考

FreeRTOS的任务触发是由滴答时钟触发SysTick中断来触发调度器执行或阻塞或挂起和切换任务的。 首先是任务的并发能力,FreeRTOS的任务执行是基于全抢占调度机制,任务优先级按在就绪列表中由高到低排布,系统首先执行最高优先级任务,…

Django web开发(一) - 前端

文章目录 前端开发1.快速开发网站2.标签2.1 编码2.2 title2.3 标题2.4 div和span2.5 超链接2.6 图片小结标签的嵌套2.7 列表2.8 表格2.9 input系列2.10 下拉框2.11 多行文本用户注册案例: 用户注册GET 方式POST 方式表单数据提交优化 3.CSS样式3.1 快速上手3.2 CSS应用方式1. 在…

Docker run 命令

docker run :创建一个新的容器并运行一个命令 语法 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]OPTIONS说明: -a stdin:指定标准输入输出内容类型,可选STDIN/STDOUT/STDERR三项; -d:后台运行容器&am…

SAP-部分字段变更

在SAP中部分字段是可以自行调整的,例如下图 这个字段是客户组1,已经被改成一级经理,现在来操作改回客户组1 首先选择字段点击F1-技术信息-数据元素(双击) . . 保存,返回,激活,返…

redis运维(十八)pipeline

一 pipeline 流水线 说明: 这里讲解的不是jenkins的pipeline流水线这里pipeline: 管道 redis为什么要提供pipeline功能 事务和pipeline ① pipeline的理念 强调:单纯的pipeline跟事务没有关系redis-cli --pipe --> 使用了pipeline机制说明&a…

排序算法总结

1 排序算法 1.1 快速排序 1.1.1 算法思想 先取一个随机数,然后和数组的最后一个数交换 进行partition过程,也就是比数组最后一个数小的放在数组左边,大的放在右边,相等的在数组中间,最后把数组的最后一个数也要放到中…

【LeetCode刷题-回溯】-- 46.全排列

46.全排列 方法:回溯法 一种通过探索所有可能的候选解来找出所有的解的算法,如果候选解被确认不是一个解,回溯法会通过在上一步进行一些变化抛弃该解,即回溯并且再次尝试 使用一个标记数组表示已经填过的数 class Solution {pu…

【前端】yarn介绍和使用

yarn介绍和使用 一、什么是yarn?二、安装yarn三、yarn用法四、yarn更多用法 一、什么是yarn? yarn是快速、可靠、安全的依赖管理。 yarn官网:https://yarn.nodejs.cn/ Yarn 是代码的包管理器。 它允许你与世界各地的其他开发者使用和共享&am…

如何设置实现本地JumpServer远程访问管理界面

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpS…

C语言for循环结构经典练习

文章目录 一、for循环基本知识二、经典例题及解析1.水仙花数2.求规定范围内的完数3.求规定范围内质数4.计算阶乘之和5.计算55555555555555(类型)6.计算112123123412345(类型)7.判断用户输入正整数的位数8.判断某正整数是否为回文数9.九九乘法表10.统计用户输入的字符中&#xf…

PTA 公路村村通

现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N)&…