多元宇宙算法求解电力系统多目标优化问题(Matlab实现)【电气期刊论文复现与算例创新】

news/2024/9/22 20:36:19/

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥

📝目前更新:🌟🌟🌟电力系统相关知识,期刊论文,算法,机器学习和人工智能学习。
🚀支持:🎁🎁🎁如果觉得博主的文章还不错或者您用得到的话,可以关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!

👨‍🎓博主课外兴趣:中西方哲学,送予读者:

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“真理”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

📋📋📋本文目录如下:⛳️⛳️⛳️

目录

0 概述

1 环境经济调度数学模型

2 多元宇宙算法

3 讲解

3.1 主函数: 

3.2 目标函数 

4 运行结果

4 IEEE140节点仿真算例及Matlab代码【创新】

5 参考文献

6 完整Matlab代码实现


0 概述

多元宇宙算法求解电力系统多目标优化算法有很好的效果,代码换成自己的目标函数,加上约束和惩罚项等。本文用多元宇宙算法求解电力系统多目标优化问题——电力系统环境经济调度问题。

提出了一种求解电力系统环境经济调度的新方法,该方法利用宇宙空间在随机创建过程中高膨胀率的物体随虫洞在空间移动物体的规律,通过对白洞和黑洞间随机传送物体来实现最优搜索. 算法具有运算速度快,收敛性强,适用于高维计算等特点.以总燃料费用最低和总污染排放最少为多目标建立环境经济调度模型,最后,通过发电厂传统10机组和40机组算例进行仿真.结果表明:本文所提算法具有经济性和有效性. 

1 环境经济调度数学模型

2 多元宇宙算法

 

3 讲解

3.1 主函数: 

clc;
clear;
close all;
tStart=tic;
% global costdata emissiondata B B0 B00 Pd VarMin VarMax nVar
global data B B0 B00 Pd VarMin VarMax nVar
Pd=2000;
data=xlsread('IEEE10.xls');B1=xlsread('B10.xls');
B=B1(1:10,1:10);
B0=[0 0 0 0 0 0 0 0 0 0];
B00=0;
%  B=B1(1:3,1:3);
%  B0=[0 0 0 0 0 0 0 0 0 0];
%  B00=0;%%Max_time=600; %迭代次数
N=100;
ArchiveMaxSize=100;
% max_iter=Max_time;nVar=10;             % 机组个数VarSize=[1 nVar];   % 决策变量矩阵的大小
VarMin=data(:,2);          %机组出力下限
VarMax= data(:,3);          % 机组出力上限fobj=@(x) IEEE3aobj(x);
dim=nVar;
lb=VarMin';
ub=VarMax';
obj_no=2;Best_universe=zeros(1,dim);
Best_universe_Inflation_rate=inf*ones(1,obj_no);Archive_X=zeros(ArchiveMaxSize,dim);
Archive_F=ones(ArchiveMaxSize,obj_no)*inf;
Archive_member_no=0;WEP_Max=1;
WEP_Min=0.2;for i=1:NUniverses(i,:)=lcheck3; 
endTime=1;while Time<Max_time+1WEP=WEP_Min+Time*((WEP_Max-WEP_Min)/Max_time);TDR=1-((Time)^(1/6)/(Max_time)^(1/6));for i=1:size(Universes,1)%边界检查(如果宇宙超出边界,则将它们带回搜索空间内)Flag4ub=Universes(i,:)>ub;Flag4lb=Universes(i,:)<lb;Universes(i,:)=(Universes(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;Universes(i,:)=lbcoff3bus(Universes(i,:));%计算宇宙的通货膨胀率(适合度)Inflation_rates(i,:)=fobj(Universes(i,:));%精英主义if dominates(Inflation_rates(i,:),Best_universe_Inflation_rate)Best_universe_Inflation_rate=Inflation_rates(i,:);Best_universe=Universes(i,:);endend[sorted_Inflation_rates,sorted_indexes]=sort(Inflation_rates);for newindex=1:NSorted_universes(newindex,:)=Universes(sorted_indexes(newindex),:);end%原始MVO论文中的标准化通货膨胀率normalized_sorted_Inflation_rates=normr(sorted_Inflation_rates);Universes(1,:)= Sorted_universes(1,:);
%     Universes(1,:)=lchecktf1(Universes(1,:));[Archive_X, Archive_F, Archive_member_no]=UpdateArchive(Archive_X, Archive_F, Universes, Inflation_rates, Archive_member_no);if Archive_member_no>ArchiveMaxSizeArchive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);[Archive_X, Archive_F, Archive_mem_ranks, Archive_member_no]=HandleFullArchive(Archive_X, Archive_F, Archive_member_no, Archive_mem_ranks, ArchiveMaxSize);elseArchive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);endArchive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);% 提高复盖率index=RouletteWheelSelection(1./Archive_mem_ranks);if index==-1index=1;endBest_universe_Inflation_rate=Archive_F(index,:);Best_universe=Archive_X(index,:); %更新宇宙的位置for i=2:size(Universes,1)%从2开始,因为第1位是精英Back_hole_index=i;for j=1:size(Universes,2)r1=rand();if r1<normalized_sorted_Inflation_rates(i)White_hole_index=RouletteWheelSelection(-sorted_Inflation_rates);% 对于最大化问题,排序的通货膨胀率应该写成排序的通货膨胀率if White_hole_index==-1White_hole_index=1;end%Eq. (3.1) Universes(Back_hole_index,j)=Sorted_universes(White_hole_index,j);
%                 Universes(Back_hole_index,j)=lchecktf1(Universes(Back_hole_index,j));endif (size(lb',1)==1)%如果边界都是一样的,那么原MVO论文中的公式(3.2)就会出现r2=rand();if r2<WEPr3=rand();if r3<0.5Universes(i,j)=Best_universe(1,j)+TDR*((ub-lb)*rand+lb);endif r3>0.5Universes(i,j)=Best_universe(1,j)-TDR*((ub-lb)*rand+lb);endendendif (size(lb',1)~=1)%公式( 3.2 )在原始MVO论文中,如果对每个变量的上下界不同r2=rand();if r2<WEPr3=rand();if r3<0.5Universes(i,j)=Best_universe(1,j)+TDR*((ub(j)-lb(j))*rand+lb(j));endif r3>0.5Universes(i,j)=Best_universe(1,j)-TDR*((ub(j)-lb(j))*rand+lb(j));endendendendUniverses(i,:)=lbcoff3bus(Universes(i,:));enddisplay(['At the iteration ', num2str(Time), ' there are ', num2str(Archive_member_no), ' non-dominated solutions in the archive']);Time=Time+1;
%
end
plot(Archive_F(:,1),Archive_F(:,2),'Ro','LineWidth',2,...'MarkerEdgeColor','r',...'MarkerFaceColor','r',...'MarkerSize',2);
xlabel('污染排放量')
ylabel('煤耗量')
title('Pareto最前沿')
% Universes
Archive_F(:,1)
Archive_F(:,2)
Best_universe

4 运行结果

10机组运行结果:

  

本文提出了一种求解电力系统环境经济调度的新方法,计及阀点效应和污染排放因素,建立多目标规划模型,利用PPF定价原则权衡多重因素. 多元宇宙算法在求解EED问题时具有计算精度高,收敛速度快等特点,在求解高维度问题表现更佳,适用于其他工程问题研究.

4 IEEE140节点仿真算例及Matlab代码【创新】

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

5 参考文献

[1]刘世宇,王孜航,杨德友.多元宇宙算法及其在电力系统环境经济调度的应用[J].东北电力大学学报,2018,38(04):19-26. 

6 完整Matlab代码实现


http://www.ppmy.cn/news/4562.html

相关文章

两台linux服务器rsync自动备份文件

检查rsycn是否安装 检查方法&#xff1a;rpm -qa rsync 出现rsync 包名就是安装了 安装rsycn rsync的安装可以使用yum直接安装&#xff1a;yum install rsync rsycn的服务端/文件接收端配置 1、先创建备份目录 mkdir /data/xsbak2、服务端需要开启rsyncd服务&#xff0c;添加…

css知识复习点

四种css使用方式&#xff1a;内嵌式、外链式、行内式、导入式 复合选择器 后代选择器 选择器之间需要用空格隔开&#xff0c;后代不一定是儿子 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>复合…

Win11+RTX3060+Anconda+CUDA11.3+cuDNN8.2+Pytorch1.10一条龙服务2

Win11RTX3060AncondaCUDA11.3cuDNN8.2Pytorch1.10一条龙服务 &#xff08;1&#xff09;查看安装了哪些包 conda list&#xff08;2)查看当前存在哪些虚拟环境 conda env list &#xff08;3&#xff09;创建虚拟环境&#xff0c;你可以创建好几个虚拟环境&#xff0c;虚拟环…

循环神经网络(RNN)

卷积神经网络和循环神经网络的区别 神经网络的基本原理是:一层中的所有神经元都接受一个输入,将其乘以一个权重,然后经过神经元的偏差进行调整,最后用激励函数把输出值标准化,得到一个神经元的输出。最后将一层中所有神经元的输出相加得到该层的输出。比如卷积神经网络,…

[附源码]Python计算机毕业设计华夏商场红酒管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等…

对数据库事务理解以及脏读、不可重复读以及幻读问题

引言 事务就是能够把多个SQL给打包在一起&#xff0c;变成一个整体。因为有些操作是需要作为一个整体来完成的&#xff0c;比如转账操作&#xff0c;A给B转账100&#xff0c;那么A的账户余额就会减100&#xff0c;B的账户余额就会加100。如果在A转账的过程中&#xff0c;因为某…

Dijkstra迪杰斯特拉算法

1.场景 用于计算一个节点到其他节点的最短路径&#xff0c;特点是由其实点位中心向外层扩展&#xff08;BFS思想&#xff09;&#xff0c;直至扩展到终点为止 2.认识 https://blog.csdn.net/weixin_57128596/article/details/126982769?ops_request_misc%257B%2522request%…

RK3588平台开发系列讲解(GPIO篇)配置GPIO需要了解的概念

平台内核版本安卓版本RK3588Linux 5.10Android12🚀返回专栏总目录 文章目录 一、 GPIO(通⽤输⼊输出)二、IOMUX(输⼊输出复⽤)三、PULL(端口上下拉)四、DRIVE-STRENGTH(端口驱动强度)五、 SMT(端口斯密特触发器)沉淀、分享、成长,让自己和他人都能有所收获!😄 …