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


     

    💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥
    🎉作者研究:🏅🏅🏅本科计算机专业,研究生电气学硕主要研究方向是电力系统和智能算法、机器学习和深度学习。目前熟悉python网页爬虫、机器学习、群智能算法、深度学习的相关内容。希望将计算机和电网有效结合!⭐️⭐️⭐️
    🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者,博主专门做了一个专栏目录,整个专栏只放了一篇文章,足见我对其重视程度:博主专栏目录。做到极度细致,方便大家进行学习!亲民!!!还有我开了一个专栏给女朋友的,很浪漫的喔,代码学累的时候去瞧一瞧,看一看:女朋友的浪漫邂逅。有问题可以私密博主,博主看到会在第一时间回复。
    📝目前更新:🌟🌟🌟电力系统相关知识,期刊论文,算法,机器学习和人工智能学习。
    🚀支持:🎁🎁🎁如果觉得博主的文章还不错或者您用得到的话,可以关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!

                              

                                        🎉🎉欢迎您的到来🎉🎉

                         ⛅⛅⛅ 📃个人主页:科研室🌈🌈🌈

                        📚📚📚📋所有代码目录:电气工程科研社👨‍💻👨‍💻👨‍💻

                               

    【现在公众号名字改为:荔枝科研社】

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

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

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

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

    目录

    1 概述

    1 环境经济调度数学模型

    2 多元宇宙算法

    3 Matlab代码实现 

    3.1 主函数: 

    3.2 目标函数 

    4 运行结果

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

    5 参考文献

    1 概述

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

     

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

    1 环境经济调度数学模型

    2 多元宇宙算法

     

    3 Matlab代码实现 

    3.1 主函数: 

    1. clc;
    2. clear;
    3. close all;
    4. tStart=tic;
    5. % global costdata emissiondata B B0 B00 Pd VarMin VarMax nVar
    6. global data B B0 B00 Pd VarMin VarMax nVar
    7. Pd=2000;
    8. data=xlsread('IEEE10.xls');
    9. B1=xlsread('B10.xls');
    10. B=B1(1:10,1:10);
    11. B0=[0 0 0 0 0 0 0 0 0 0];
    12. B00=0;
    13. % B=B1(1:3,1:3);
    14. % B0=[0 0 0 0 0 0 0 0 0 0];
    15. % B00=0;
    16. %%
    17. Max_time=600; %迭代次数
    18. N=100;
    19. ArchiveMaxSize=100;
    20. % max_iter=Max_time;
    21. nVar=10; % 机组个数
    22. VarSize=[1 nVar]; % 决策变量矩阵的大小
    23. VarMin=data(:,2); %机组出力下限
    24. VarMax= data(:,3); % 机组出力上限
    25. fobj=@(x) IEEE3aobj(x);
    26. dim=nVar;
    27. lb=VarMin';
    28. ub=VarMax';
    29. obj_no=2;
    30. Best_universe=zeros(1,dim);
    31. Best_universe_Inflation_rate=inf*ones(1,obj_no);
    32. Archive_X=zeros(ArchiveMaxSize,dim);
    33. Archive_F=ones(ArchiveMaxSize,obj_no)*inf;
    34. Archive_member_no=0;
    35. WEP_Max=1;
    36. WEP_Min=0.2;
    37. for i=1:N
    38. Universes(i,:)=lcheck3;
    39. end
    40. Time=1;
    41. while Time1
    42. WEP=WEP_Min+Time*((WEP_Max-WEP_Min)/Max_time);
    43. TDR=1-((Time)^(1/6)/(Max_time)^(1/6));
    44. for i=1:size(Universes,1)
    45. %边界检查(如果宇宙超出边界,则将它们带回搜索空间内)
    46. Flag4ub=Universes(i,:)>ub;
    47. Flag4lb=Universes(i,:)
    48. Universes(i,:)=(Universes(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;
    49. Universes(i,:)=lbcoff3bus(Universes(i,:));
    50. %计算宇宙的通货膨胀率(适合度)
    51. Inflation_rates(i,:)=fobj(Universes(i,:));
    52. %精英主义
    53. if dominates(Inflation_rates(i,:),Best_universe_Inflation_rate)
    54. Best_universe_Inflation_rate=Inflation_rates(i,:);
    55. Best_universe=Universes(i,:);
    56. end
    57. end
    58. [sorted_Inflation_rates,sorted_indexes]=sort(Inflation_rates);
    59. for newindex=1:N
    60. Sorted_universes(newindex,:)=Universes(sorted_indexes(newindex),:);
    61. end
    62. %原始MVO论文中的标准化通货膨胀率
    63. normalized_sorted_Inflation_rates=normr(sorted_Inflation_rates);
    64. Universes(1,:)= Sorted_universes(1,:);
    65. % Universes(1,:)=lchecktf1(Universes(1,:));
    66. [Archive_X, Archive_F, Archive_member_no]=UpdateArchive(Archive_X, Archive_F, Universes, Inflation_rates, Archive_member_no);
    67. if Archive_member_no>ArchiveMaxSize
    68. Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);
    69. [Archive_X, Archive_F, Archive_mem_ranks, Archive_member_no]=HandleFullArchive(Archive_X, Archive_F, Archive_member_no, Archive_mem_ranks, ArchiveMaxSize);
    70. else
    71. Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);
    72. end
    73. Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);
    74. % 提高复盖率
    75. index=RouletteWheelSelection(1./Archive_mem_ranks);
    76. if index==-1
    77. index=1;
    78. end
    79. Best_universe_Inflation_rate=Archive_F(index,:);
    80. Best_universe=Archive_X(index,:);
    81. %更新宇宙的位置
    82. for i=2:size(Universes,1)%从2开始,因为第1位是精英
    83. Back_hole_index=i;
    84. for j=1:size(Universes,2)
    85. r1=rand();
    86. if r1
    87. White_hole_index=RouletteWheelSelection(-sorted_Inflation_rates);% 对于最大化问题,排序的通货膨胀率应该写成排序的通货膨胀率
    88. if White_hole_index==-1
    89. White_hole_index=1;
    90. end
    91. %Eq. (3.1)
    92. Universes(Back_hole_index,j)=Sorted_universes(White_hole_index,j);
    93. % Universes(Back_hole_index,j)=lchecktf1(Universes(Back_hole_index,j));
    94. end
    95. if (size(lb',1)==1)
    96. %如果边界都是一样的,那么原MVO论文中的公式(3.2)就会出现
    97. r2=rand();
    98. if r2
    99. r3=rand();
    100. if r3<0.5
    101. Universes(i,j)=Best_universe(1,j)+TDR*((ub-lb)*rand+lb);
    102. end
    103. if r3>0.5
    104. Universes(i,j)=Best_universe(1,j)-TDR*((ub-lb)*rand+lb);
    105. end
    106. end
    107. end
    108. if (size(lb',1)~=1)
    109. %公式( 3.2 )在原始MVO论文中,如果对每个变量的上下界不同
    110. r2=rand();
    111. if r2
    112. r3=rand();
    113. if r3<0.5
    114. Universes(i,j)=Best_universe(1,j)+TDR*((ub(j)-lb(j))*rand+lb(j));
    115. end
    116. if r3>0.5
    117. Universes(i,j)=Best_universe(1,j)-TDR*((ub(j)-lb(j))*rand+lb(j));
    118. end
    119. end
    120. end
    121. end
    122. Universes(i,:)=lbcoff3bus(Universes(i,:));
    123. end
    124. display(['At the iteration ', num2str(Time), ' there are ', num2str(Archive_member_no), ' non-dominated solutions in the archive']);
    125. Time=Time+1;
    126. %
    127. end
    128. plot(Archive_F(:,1),Archive_F(:,2),'Ro','LineWidth',2,...
    129. 'MarkerEdgeColor','r',...
    130. 'MarkerFaceColor','r',...
    131. 'MarkerSize',2);
    132. xlabel('污染排放量')
    133. ylabel('煤耗量')
    134. title('Pareto最前沿')
    135. % Universes
    136. Archive_F(:,1)
    137. Archive_F(:,2)
    138. Best_universe

    3.2 目标函数 

    1. function z=IEEE10aobj(x)
    2. global data
    3. lb=data(:,2);
    4. e1=data(:,8);
    5. d1=data(:,7);
    6. c1=sum(data(:,4));
    7. b1=data(:,5);
    8. a1=data(:,6);
    9. F=zeros(length(x(:,1)),1);
    10. E=zeros(length(x(:,1)),1);
    11. for i=1:length(x(:,1))
    12. %F(i)=x(i,:).*x(i,:)*a1+x(i,:)*b1+c1;
    13. F(i)=x(i,:).*x(i,:)*a1+x(i,:)*b1+c1+sum(abs(d1.*sin(e1.*(lb-x(i,:)'))));
    14. end
    15. Delta=data(:,13);
    16. Xi=data(:,12);
    17. Alpha=data(:,11);
    18. Beta=data(:,10);
    19. Gamma=sum(data(:,9));
    20. for i=1:length(x(:,1))
    21. %E(i)= x(i,:).*x(i,:)*Alpha+x(i,:)*Beta+Gamma;
    22. E(i)= (x(i,:).*x(i,:)*Alpha+x(i,:)*Beta+Gamma)+exp(x(i,:).*Delta')*Xi;
    23. end
    24. F(i);
    25. E(i);
    26. z=[E F]';
    27. end

     全部代码点这里:多元宇宙算法及其在电力系统环境经济调度的应用(Matlab实现)

    4 运行结果

    10机组运行结果:

      

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

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

    需要这部分点这里:🍞正在为您运送作品详情

    5 参考文献

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

  • 相关阅读:
    安装elasticsearch
    【linux编程】linux文件IO高级I/O函数介绍和代码示例
    耦合器 BL200PN和西门子PLC通讯
    <数据库视图>--数据库的“眼镜”(世界杯例题篇),查阅必备
    Vue项目build打包编译后如何再修改后台请求地址
    【SpringBoot实战】数据访问整合Mybatis和Redis
    狂神说之redis笔记
    New Concept English3 Lesson 2. Thirteen equals one【精讲学习笔记】
    张高兴的 MicroPython 入门指南:(一)环境配置、Blink、部署
    PHP知识大全
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/126247030