% Annual load power flow for different load profile
function [MULTI_OBJ] = Annual_VSI(pop)
% clc; clear;
% pop = [1:1:3,zeros(1,3)];
%=======================================================================================
NUM1 = [1,2,0.0922000000000000,0.0470000000000000,0,1,400;2,3,0.493000000000000,0.251100000000000,0,1,400;2,19,0.164000000000000,0.156500000000000,0,1,200;3,4,0.366000000000000,0.186400000000000,0,1,400;3,23,0.451200000000000,0.308300000000000,0,1,200;4,5,0.381100000000000,0.194100000000000,0,1,400;5,6,0.819000000000000,0.707000000000000,0,1,400;6,7,0.187200000000000,0.618800000000000,0,1,300;6,26,0.203000000000000,0.103400000000000,0,1,300;7,8,0.711400000000000,0.235100000000000,0,1,300;8,9,1.03000000000000,0.740000000000000,0,1,200;9,10,1.04400000000000,0.740000000000000,0,1,200;10,11,0.196600000000000,0.0650000000000000,0,1,200;11,12,0.374400000000000,0.123800000000000,0,1,200;12,13,1.46800000000000,1.15500000000000,0,1,200;13,14,0.541600000000000,0.712900000000000,0,1,200;14,15,0.591000000000000,0.526000000000000,0,1,200;15,16,0.746300000000000,0.545000000000000,0,1,200;16,17,1.28900000000000,1.72100000000000,0,1,200;17,18,0.732000000000000,0.574000000000000,0,1,200;19,20,1.50420000000000,1.35540000000000,0,1,200;20,21,0.409500000000000,0.478400000000000,0,1,200;21,22,0.708900000000000,0.937300000000000,0,1,200;23,24,0.898000000000000,0.709100000000000,0,1,200;24,25,0.896000000000000,0.701100000000000,0,1,200;26,27,0.284200000000000,0.144700000000000,0,1,300;27,28,1.05900000000000,0.933700000000000,0,1,300;28,29,0.804200000000000,0.700600000000000,0,1,200;29,30,0.507500000000000,0.258500000000000,0,1,200;30,31,0.974400000000000,0.963000000000000,0,1,200;31,32,0.310500000000000,0.361900000000000,0,1,200;32,33,0.341000000000000,0.530200000000000,0,1,200;];
NUM2 = [1,1,1,0,0,0,0,0,0,0;2,3,1,0,0,0,100,60,0,0;3,3,1,0,0,0,90,40,0,0;4,3,1,0,0,0,120,80,0,0;5,3,1,0,0,0,60,30,0,0;6,3,1,0,0,0,60,20,0,0;7,3,1,0,0,0,200,100,0,0;8,3,1,0,0,0,200,100,0,0;9,3,1,0,0,0,60,20,0,0;10,3,1,0,0,0,60,20,0,0;11,3,1,0,0,0,45,30,0,0;12,3,1,0,0,0,60,35,0,0;13,3,1,0,0,0,60,35,0,0;14,3,1,0,0,0,120,80,0,0;15,3,1,0,0,0,60,10,0,0;16,3,1,0,0,0,60,20,0,0;17,3,1,0,0,0,60,20,0,0;18,3,1,0,0,0,90,40,0,0;19,3,1,0,0,0,90,40,0,0;20,3,1,0,0,0,90,40,0,0;21,3,1,0,0,0,90,40,0,0;22,3,1,0,0,0,90,40,0,0;23,3,1,0,0,0,90,50,0,0;24,3,1,0,0,0,420,200,0,0;25,3,1,0,0,0,420,200,0,0;26,3,1,0,0,0,60,25,0,0;27,3,1,0,0,0,60,25,0,0;28,3,1,0,0,0,60,20,0,0;29,3,1,0,0,0,120,70,0,0;30,3,1,0,0,0,200,600,0,0;31,3,1,0,0,0,150,70,0,0;32,3,1,0,0,0,210,100,0,0;33,3,1,0,0,0,60,40,0,0;];
% slack = 1; % slack bus number.
Base_Kv = 12.66; % Base kV.
Base_MVA = 100; % 100MVA Base;
Z_Base = (((Base_Kv)^2)/(Base_MVA));
fb = NUM1(:,1);
tb = NUM1(:,2);
N = max(max(fb),max(tb));
Nb = length(fb);
R = NUM1(:,3);
X = NUM1(:,4);
Z_Line = complex(R,X)/Z_Base;
RR = real(Z_Line);
XX = imag(Z_Line);
% I_max = NUM1(:,7);
PL = NUM2(:,7);
QL = NUM2(:,8);
PG = NUM2(:,5);
QG = NUM2(:,6);
V = NUM2(:,3);
Pinj = (PG - PL)/(1000*Base_MVA);
Qinj = (QG - QL)/(1000*Base_MVA);
%Find Terminal Buses by using the fact that a Terminal bus is never an inbus
Terminalbuses = zeros(N,1);
Intermediatebuses = zeros(N,1);
for i = 1:N-1
Terminalbuses(i,1) = 0;
Intermediatebuses(i,1) = 0;
end
do = 0;in = 0;
for i = 1:Nb
for j = 1:Nb
if (i~=j)&&(tb(i) == fb(j))
do = do+1;
end
end
if do == 0
in = in+1;
Terminalbuses(in,1) = tb(i);
else
in = in+1;
Intermediatebuses(in,1) = tb(i);
end
do = 0;
end
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% ======================================================================================
% Integrate the DGs according the population produced by GA/TM
DG_var = 1;
% SC_var = 300;
DG_PF = 0.85;
for pp = 1:length(pop)/2
% if(pp<=length(pop)/4)
PG(pop(pp)) = DG_var*(pop(pp+length(pop)/2))*DG_PF;
QG(pop(pp)) = DG_var*(pop(pp+length(pop)/2))*sqrt(1-DG_PF^2);
% else
% QG(pop(pp)) = SC_var*(pop(pp+length(pop)/2));
% end
end
%
[P_Loss,~,V_mag,~,~] = FOR_BACK(NUM1,Terminalbuses,Intermediatebuses,PL,QL,V,PG,QG); % Load Flow.
% Objective1 (Power loss minimization)
obj1 = sum(P_Loss)/1000;
%objective2 (voltage deviation)
obj2 = sum((ones(N,1) - V_mag).^2);
%objective3 (voltage stability index)
VSI_send = zeros(1,Nb);
for r1 = 1:Nb
VSI_send(r1) = (V_mag(fb(r1)))^4 - 4*((Pinj(tb(r1))*RR(r1) + Qinj(tb(r1))*XX(r1)))*(V_mag(fb(r1)))^2 - 4*(Pinj(tb(r1))*XX(r1)-Qinj(tb(r1))*RR(r1))^2;
end
obj3 = min(VSI_send);
MULTI_OBJ = [obj1 obj2 obj3];
没有合适的资源?快使用搜索试试~ 我知道了~
基于象群优化算法改进topsis法附matlab代码 .zip
共7个文件
m:5个
png:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 79 浏览量
2022-06-18
19:05:21
上传
评论
收藏 11KB ZIP 举报
温馨提示
1.版本:matlab2019a,不会运行可私信 2.领域:【数据分析】 3.内容:基于象群优化算法改进topsis法附matlab代码 4.适合人群:本科,硕士等教研学习使用
资源推荐
资源详情
资源评论
收起资源包目录
【数据分析】基于象群优化算法改进topsis法附matlab代码 上传版本.zip (7个子文件)
【数据分析】基于象群优化算法改进topsis法附matlab代码 上传版本
MO_EHO.m 3KB
1.png 3KB
Correction_test.m 2KB
FOR_BACK.m 2KB
Annual_VSI.m 5KB
2.png 4KB
TOPSIS.m 1016B
共 7 条
- 1
资源评论
- 2301_768405202023-03-15超赞的资源,感谢资源主分享,大家一起进步!
天天Matlab科研工作室
- 粉丝: 2w+
- 资源: 7253
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功