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.pswp.cn/news/164236.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164236.shtml
英文地址,請注明出處:http://en.pswp.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)&…