基于改進粒子群算法的多目標分布式電源選址定容規劃(附帶Matlab代碼)

? ? ? ?通過分析分布式電源對配電網的影響,以有功功率損耗、電壓質量及分布式電源總容量為優化目標,基于模糊理論建立了分布式電源在配電網中選址定容的多目標優化模型,并提出了一種改進粒子群算法進行求解。在算例仿真中,基于IEEE-14標準節點系統,采用MATLAB仿真工具對所提算法進行了測試,證實了所提算法全局搜索能力較強、收斂速度較快,并通過比較分析驗證了該模型和算法的可行性及有效性。

?1.含DG的配電網潮流計算

? ? ? 連接到配電網的 DG所采用的模型既可簡化為 PV節點,也可以是PQ節點。本文將其當成具有恒定功率因數的PQ節點,由于DG 的位置一般靠近負荷中心,因此假設DG的位置就在負荷節點上。DG接入負荷節點的模型如下圖所示,只需考慮改變接入DG 節點的負載功率變化即可。

? ? ? ?建立了DG接入配電網模型后,便可以根據相應的節點發電負載功率參數和配電網線路參數進行潮流計算,進而得到配電網中各個節點的電壓以及功率分布。本文在算例仿真過程中采用牛頓拉夫遜法進行潮流計算,該方法具有良好的線性收斂性能。

2.基于改進粒子群優化算法多目標優化的DG選址定容的流程

3.仿真代碼

clc;
clear;
close all;
nbus=14;
V=without_DG_process(nbus);%初始電壓
voltval1=V;
%% 設置種群迭代參數
iter_max=100;        %迭代次數    
no_of_pop=100;       %種群數量 
prop_crsval=0.7;    %交叉概率
no_of_crs=2*round(prop_crsval*no_of_pop/2);  prop_mutval=0.3;    %突變概率                          
no_of_mut=round(prop_mutval*no_of_pop);   
mu=0.02;   
sigma=2;
% runpf(case14)
% mpc=case14;
% mpc.branch ;linedt =bus_line_data(14);%% 初始化種群
int_tmp_pop.Position=[];
int_tmp_pop.Cost=[];
int_tmp_pop.Rank=[];
int_tmp_pop.DominationSet=[];
int_tmp_pop.DominatedCount=[];
int_tmp_pop.CrowdingDistance=[];% 擁擠度
%儲存每次迭代結果
population_func_data=repmat(int_tmp_pop,no_of_pop,1);
%B = repmat(A,m,n),將矩陣 A 復制 m×n 塊,即把 A 作為 B 的元素,B 由 m×n 個 A 平鋪而成。B 的維數是 [size(A,1)*m, size(A,2)*n] 。
%% dg位置與容量約束
minval1=1;     %dg位置
maxval1=nbus;  %dg位置,在1-14節點中
minval2=0;     %dg容量
maxval2=50;    %dg容量
no_of_dg=4;    %dg數量%% randsrc函數,無參數形式,隨機輸出
for locm=1:no_of_pop%產生變量,隨機生成dg位置與容量,population_func_data(locm).Position=[randsrc(1,no_of_dg,minval1:maxval1) randsrc(1,no_of_dg,minval2:maxval2)];%計算出隨機生成對應位置與容量情況下的目標函數值population_func_data(locm).Cost=feed_power(nbus,population_func_data(locm).Position);end
[population_func_data, rankval]=non_dominate_sorting_process(population_func_data);%% 非支配種群排序過程
population_func_data=cal_crown_dist(population_func_data,rankval);%% 計算種群擁擠度
[population_func_data, rankval]=sort_process(population_func_data);%% 排序過程
%% 迭代
for iter=1:iter_max%% 種群交叉population_cross=repmat(int_tmp_pop,no_of_crs/2,2);%B = repmat(A,m,n),將矩陣 A 復制 m×n 塊,即把 A 作為 B 的元素,B 由 m×n 個 A 平鋪而成。B 的維數是 [size(A,1)*m, size(A,2)*n] 。for k=1:no_of_crs/2loc1=randi([1 no_of_pop]);loc1_data=population_func_data(loc1);loc2=randi([1 no_of_pop]);loc2_data=population_func_data(loc2);[population_cross(k,1).Position, population_cross(k,2).Position]=cross_over_process(loc1_data.Position,loc2_data.Position,minval1,maxval1,minval2,maxval2);population_cross(k,1).Cost=feed_power(nbus,population_cross(k,1).Position);population_cross(k,2).Cost=feed_power(nbus,population_cross(k,2).Position);endpopulation_cross=population_cross(:);%% 種群變異population_mute=repmat(int_tmp_pop,no_of_mut,1);for k=1:no_of_mutlocm=randi([1 no_of_pop]);data_locm=population_func_data(locm);population_mute(k).Position=mutation_process(data_locm.Position,mu,sigma,minval1,maxval1,minval2,maxval2);population_mute(k).Cost=feed_power(nbus,population_mute(k).Position);end%% 完成篩選population_func_data=[population_func_data;population_cross;population_mute]; [population_func_data, rankval]=non_dominate_sorting_process(population_func_data);population_func_data=cal_crown_dist(population_func_data,rankval);population_func_data=sort_process(population_func_data);population_func_data=population_func_data(1:no_of_pop);[population_func_data, rankval]=non_dominate_sorting_process(population_func_data);population_func_data=cal_crown_dist(population_func_data,rankval);[population_func_data, rankval]=sort_process(population_func_data);resout_final=population_func_data(rankval{1});res1=[resout_final.Cost];plot3(res1(1,:),res1(2,:), res1(3,:),'b*')
xlabel('1網損')
ylabel('2電壓穩定性')
zlabel('3容量和')
grid on
hold off
title('目標優化結果')
drawnowend
%% 結果輸出
datart=resout_final(end).Position;
%最優變量,位置和容量
DG_LOCATION=datart(1:4)
DG_UNIT_SIZE=datart(5:8)
load resg.mat 
POWER_LOSSES_WITH_DG=POWER_LOSSES
STABILITY_INDEX_WITH_DG=STABILITY_INDEX;%穩定性指數
voltval2=V;
EIGEN_VALUE=diag(d1).';%特征值
%% 畫圖
figure,plot(1:nbus,voltval1,'p-s','linewidth',2);
hold on,
plot(1:nbus,voltval2,'b-s','linewidth',2);
grid on;
legend('無DG時電壓分布','有DG時電壓分布');
xlabel('節點');
ylabel('電壓幅值/pu');

4.仿真算例與結果分析仿真

? ? ? 在算例仿真中,基于IEEE-14標準節點系統,采用MATLAB仿真工具對所提算法進行了測試,證實了所提算法全局搜索能力較強、收斂速度較快,并通過比較分析驗證了該模型和算法的可行性及有效性。

代碼地址:

基于改進粒子群算法的多目標分布式電源選址定容規劃

參考論文:

基于改進粒子群算法的多目標分布式電源選址定容規劃

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899453.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899453.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899453.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

雨云云應用測評!內測持續進行中!

大家好,時隔一個月,我們又見面了! 最近,雨云推出了新型云應用(RCA,Rainyun Cloud Application)。 通過云應用,你可以快速創建可以外部訪問的應用,采用全新的面板和dock…

【研究方向】聯邦|自然語言

聯邦學習 Federated Learning,FL 分布式學習方案。 通過多個參與方(client) 聯邦計算 Federated Computing 聯邦計算(Federated Learning)是一種分布式 機器學習 方法,旨在解決數據隱私保護與數據孤島問題。 圖聯邦 Graph Neural Networks,GNNs 圖聯…

【算法day25】 最長有效括號——給你一個只包含 ‘(‘ 和 ‘)‘ 的字符串,找出最長有效(格式正確且連續)括號子串的長度。

32. 最長有效括號 給你一個只包含 ‘(’ 和 ‘)’ 的字符串,找出最長有效(格式正確且連續)括號子串的長度。 https://leetcode.cn/problems/longest-valid-parentheses/ 2.方法二:棧 class Solution { public:int longestValid…

C++編程學習筆記:函數相關特性、引用與編譯流程

目錄 一、函數的缺省參數 (一)全缺省參數 (二)半缺省參數 二、函數重載 (一)參數類型不同 (二)參數個數不同 (三)參數類型順序不同 三、引用相關問題…

RPCGC閱讀

24年的MM 創新 現有點云壓縮工作主要集中在保真度優化上。 而在實際應用中,壓縮的目的是促進機器分析。例如,在自動駕駛中,有損壓縮會顯著丟失戶外場景的詳細信息。在三維重建中,壓縮過程也會導致場景數據中語義信息(Contour)的…

泛目錄優化:無極泛目錄優化網站,技術解析與風險控制指南

無極泛目錄優化網站精簡版 一、核心功能 無限層級目錄:支持動態創建 5 級以上子目錄,形成內容矩陣AI 內容生成:集成 GPT-4 接口,日均生產 10 萬 原創度 70% 以上的頁面SEO 智能檢測:自動優化 TDK、URL 結構、圖片屬…

歸檔重做日志archived log (明顯) 比redo log重做日志文件小

歸檔重做日志 (明顯) 比重做日志文件小。 (文檔 ID 1356604.1) 日志切換將由于以下原因發生: 1. 由于在重做日志文件已滿之前強制創建存檔而記錄和設計的行為 SQL> alter system switch logfile;SQL> alter system archive log current;RMAN> backup ar…

645.錯誤的集合

import java.util.HashMap; import java.util.Map;/*** program: Test* description: 645 錯誤的集合* author: gyf* create: 2025-03-23 10:22**/ public class Test {public static void main(String[] args) {}public static int[] findErrorNums(int[] nums) {int[] arr n…

力扣刷題494. 目標和

494. 目標和 - 力扣(LeetCode) 方法一,暴力dfs 直接進行深搜查找出所有的情況,缺點嚴重超時,只能過20個案例 留一下超時的 class Solution {//首先定義全局變量int[] abs { 1, -1 }; //用來記錄當前遍歷的數的正…

一周學會Flask3 Python Web開發-SQLAlchemy數據遷移migrate

鋒哥原創的Flask3 Python Web開發 Flask3視頻教程: 2025版 Flask3 Python web開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 模型類(表)不是一成不變的,當你添加了新的模型類,或是在模型類中添加了新的字段,甚至是修改…

Python練習之抽獎界面

前言 一、代碼整體架構分析 1、數據層 (Model) 2、控制層 (Controller) 3、視圖層 (View) 二、核心功能實現詳解 1、 文件導入功能 1.1、實現邏輯 1.2、代碼涉及知識點講解 1.2.1、wildcard 1.2.2、wx.FileDialog 1.2.3、dlg.ShowModal() 2、抽獎動畫控制 1.1、…

【云原生】docker 搭建單機PostgreSQL操作詳解

目錄 一、前言 二、前置準備 2.1 服務器環境 2.2 docker環境 三、docker安裝PostgreSQL過程 3.1 獲取PostgreSQL鏡像 3.2 啟動容器 3.2.1 創建數據卷目錄 3.2.2 啟動pg容器 3.3 客戶端測試連接數據庫 四、創建數據庫與授權 4.1 進入PG容器 4.2 PG常用操作命令 4.2…

算法為舟 思想為楫:AI時代,創作何為?

在科技浪潮洶涌澎湃的當下,AI技術以前所未有的態勢席卷各個領域,創作領域亦未能幸免。當生成式AI展現出在劇本撰寫、詩歌創作、圖像設計等方面的驚人能力時,人類創作者仿佛置身于文明演化的十字路口,迷茫與困惑交織,興奮與擔憂并存。在AI時代,創作究竟該何去何從?這不僅…

JAVA的內存圖理解

目錄 一、方法區1、類常量池2、靜態常量池3、方法區過程 二、棧三、堆1、字符常量池2、堆內存圖的繪制 java中內存可以分為 方法區、 堆、 棧、 程序計數器、 本地方法棧,其中比較中重要的是方法區、堆、棧。 一、方法區 1.方法區(Method Area&…

基于Selenium的IEEE Xplore論文數據爬取實戰指南

基于Selenium的IEEE Xplore論文數據爬取實戰指南 一、項目背景與目標 IEEE Xplore作為全球知名的學術資源平臺,收錄了大量高質量科技文獻。本教程將演示如何通過Python的Selenium庫實現: 自動化獲取指定領域論文列表(以"構音障礙"為例)完整提取論文標題、摘要、…

軟件工程面試題(十二)

1、文件和目錄(i/o)操作,怎么列出某目錄下所有文件?某目錄下所有子目錄,怎么判斷文件或目錄是否存在?如何讀寫文件? 列出某目錄下所有文件:調用listFile(),然后判斷每個File對象是否是文件可以調用 isFile(),判斷是否是文件夾可以調用isDirectory(),判斷文件或目…

醫療CMS高效管理:簡化更新維護流程

內容概要 醫療行業內容管理系統(CMS)的核心價值在于應對醫療信息管理的多維復雜性。面對診療指南的動態更新、科研數據的快速迭代以及多機構協作需求,傳統管理模式往往面臨效率瓶頸與合規風險。現代化醫療CMS通過構建結構化權限管理矩陣&…

談談Minor GC、Major GC和Full GC

目錄 一、背景 二、三者之間的區分 1、Minor GC 2、Major GC (1)老年代空間不足: (2)晉升(Promotion)失敗: (3)空間分配擔保失敗: &#x…

C盤清理技巧分享:PE Dism++ 空間清理篇

C盤清理技巧分享:PE & Dism 空間清理篇 C盤空間不足是許多用戶面臨的常見問題,尤其是在使用 Windows 系統時。本文將重點介紹如何使用 PE(Preinstallation Environment)和 Dism 工具高效清理 C盤空間,釋放寶貴的存…

低功耗LPWAN模塊開發指南:遠距離無線通信與邊緣計算融合實戰?

在遠程資產追蹤、野外環境監測等場景中,穩定可靠的長距離通信與超低功耗是系統設計的核心挑戰。eFish-SBC-RK3576通過 ?原生雙UART接口 USB OTG擴展能力? ,可無縫集成主流LPWAN模組(LoRa/NB-IoT),實現“數據采集-邊…