fvalue.m
来自「用标准PSO算法解决电力系统最优化问题」· M 代码 · 共 62 行
M
62 行
function value=fvalue(p,t)
%功率的上下限
%pmin=[-200 -80 -50 -30 -30 -40];
pmin=[40 60 80 24 26 68 110 135 135 130 94 94 125 125 125 125 125 220 220 242 242 254 254 254 254 254 254 10 10 10 20 20 20 20 18 18 20 25 25 25 ];
pmax=[80 120 190 42 42 140 300 300 300 300 375 375 500 500 500 500 500 500 500 550 550 550 550 550 550 550 550 150 150 150 70 70 70 70 60 60 60 60 60 60];
%功率惩罚系数
PENISH_COEFFICIENT=100*t;
%总功率
P_REQUIRE=8550;
%功率越界惩罚系数
puppunish=[100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0]*t;
pdownpunish=[100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0]*t;
%系数矩阵
a=[170.44,309.54,369.03,135.48,135.19 ,222.33,287.71,391.98,455.76,722.82 ,635.20,654.69,913.40,1760.4,1728.3 ,1728.3,1728.3,647.85,649.69,647.83 ,647.81,785.96,785.96,794.53,794.53 ,801.32,801.32,1055.1,1055.1,1055.1 ,1207.8,810.79,1247.7,1219.2,641.43 ,1112.8,1044.4,832.24,834.24,1035.2];
b=[8.336,7.0706,8.1817,6.9467,6.5595 ,8.0543,8.0323,6.999,6.602,12.908 ,12.986,12.796,12.501,8.8412,9.1575 ,9.1575,9.1575,7.9691,7.955,7.9691 ,7.9691,6.6313,6.6313,6.6611,6.6611 ,7.1032,7.1032,3.3353,3.3353,3.3353 ,13.051,21.887,10.244,8.3707,26.258 ,9.6956,7.1633,16.339,16.339,16.339];
c=[0.03073,0.02028,0.00942,0.08482,0.09693 ,0.01142,0.00357,0.00492,0.00573,0.00605 ,0.00515,0.00569,0.00421,0.00752,0.00708 ,0.00708,0.00708,0.00313,0.00313,0.00313 ,0.00313,0.00298,0.00298,0.00284,0.00284 ,0.00277,0.00277,0.52124,0.52124,0.52124 ,0.25098,0.16766,0.26530,0.30575,0.18362 ,0.32563,0.33722,0.23915,0.23915,0.23915];
%维度
d=length(p);
value=0;
for i=1 : d
if p(i)>pmax(i)
% value=value+puppunish(i)*(p(i)-pmax(i));
p(i)=p(i)-rand(1,1)*(pmax(i)-pmin(i));
end
if p(i)<pmin(i)
% value=value+pdownpunish(i)*(pmin(i)-p(i));
p(i)=p(i)+rand(1,1)*(pmax(i)-pmin(i));
end
value=value+a(i)+b(i)*p(i)+c(i)*p(i)*p(i);
end
%总共产生的功率
power_product=0;
for i=1 : d
power_product=power_product+p(i);
end;
%总功的惩罚*0.01
value=value+abs(P_REQUIRE-power_product)*PENISH_COEFFICIENT;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?