📄 fvalue.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -