xianyiming01 2018-04-13 07:56 采纳率: 0%
浏览 1036
已结题

请问P_BA_sum_delt、deltp_sum以及r,d等变量分别代表什么?懂微网优化的来

function result=fitness(x,k)%判断粒子的适应度,x是一个行向量,适应度就是问题的解,每一个粒子算一次
C_MT=0;
C_GRID=0;
C_BA=0;
P_BA_sum=0;%储能
deltp_sum=0;
P_BA_sum_delt=0;
%储能荷电状态%
BAsocMax=200;%soc:核电状态
P_load=[11.7 12.4 11.7 12.4 11.7 22.4 81.9 122.4 241.3 242.0 241.3 241.3 241.3 240.7 241.3 240.7 241.3 161.0 122.2 121.1 102.9 101.2 23.0 11.1];%负荷
P_pv=[0 0 0 0 0 0 0 0.0391 19.5244 40.0204 50.1010 73.3946 74.3511 76.3489 72.8004 53.1185 4.6258 0 0 0 0 0 0 0];%光伏
G_price=[0 0 0 0 0 0 0 0 0.0931 0.0931 0.0931 0.0931 0.0931 0.0931 0.0931 0.0931 0.0931 0.0931 0.0931 0.0931 0.0931 0 0 0];%有可能是高峰电价

for i=1:72%相当于之前的j
if i C_MT=C_MT+0.04*x(i);%第i个粒子的值
elseif i>24&&i<49
C_GRID= C_GRID+G_price(i-24)*x(i);
else
C_BA=C_BA+8*abs(x(i));%绝对值
end
end

for i=49:72
P_BA_sum=P_BA_sum+(-x(i));
P_BA_sum_delt= P_BA_sum_delt+max(0,P_BA_sum-BAsocMax);
end

if(P_BA_sum_delt<=0)
d=0;
elseif(P_BA_sum_delt>0&&P_BA_sum_delt<=0.001)
d=10;%%%%%迭代次数
elseif(P_BA_sum_delt>0.001&&P_BA_sum_delt<=0.1)
d=20;
elseif(P_BA_sum_delt>0.1&&P_BA_sum_delt<=1.0)
d=100;
else
d=1000;
end

%电功率平衡约束处理
for i=1:24
deltp(i)=abs(P_pv(i)+x(i)+x(i+24)+x(i+48)-P_load(i));
deltp_sum=deltp_sum+deltp(i);
end

if(deltp_sum==0)
r=0.0;
elseif(deltp_sum>0&&deltp_sum<=0.001)
% r=10*sqrt(k);%%%%迭代次数
r=10;
elseif(deltp_sum>0.001&&deltp_sum<=0.1)
r=20;
elseif(deltp_sum>0.1&&deltp_sum<=1.0)
r=100;
else
r=2000;
end
%电功率平衡约束处理

result=C_MT+C_GRID+C_BA+d*P_BA_sum_delt+r*deltp_sum;

  • 写回答

1条回答

  • dabocaiqq 2020-02-19 12:01
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog