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 + -
显示快捷键?