clc;clear;close all;
% 光储运行
global data_feng_guang1 data_power
data_power=readmatrix("附件1:典型日负荷数据.xlsx");
data_power_A=repmat(data_power(:,2)'*2,1,12);%选取典型日的负荷曲线转置,按照1行12列,12个月的典型负荷
data_feng_guang1=readmatrix("附件2:12个月典型日光伏发电数据.xlsx");
data_feng_guang=data_feng_guang1(4:end,2:end);%选取表格中第五行第二列开始的数据
%%
for N=1:12
data_guang_A(:,N)=data_feng_guang(:,1+(N-1)*2)*1000;
end
num_day=24;
%%
for i=1:12
str{1,i}=[num2str(i),'月典型日发电'];
end
figure('Position',[200,200,800,400])
plot(data_guang_A(:),'LineWidth',1.3);
xticks(12:24:24*12)
xticklabels(str)
% xlabel('time-point')
ylabel('Power/kW')
title('园区 12月典型日光伏发电')
% end
%% 园区加上储能
% 把每个典型日把12个月的发电情况结合,因此有12*24维度,那整体就会有1000多个优化变量
dim=24*12;
x0=ones(1,dim*4+3); %决策变量初始化/园区 只有和电网(买电)的交互和(弃光)
% 优化目标的上下限
LB=[zeros(1,dim),zeros(1,dim),zeros(1,dim),zeros(1,dim),0,0,0];
UB=[inf*ones(1,dim),1000*ones(1,dim),1000*ones(1,dim),1000*ones(1,dim),1000,1000,1000]; %电网、弃光量、充电量、放电量%、%1000,1000,1000 这里设定储能功率限制/容量限制/光伏配置 的上限kW 这里是可以修改的
cons1 = @fcons_E5;
func1 = @obj_E5;
options = optimset('Algorithm','interior-point', 'Display', 'iter');
% options = optimset('Algorithm','sqp','Diagnostics','on', 'Display', 'iter');
options = optimset(options,'TolFun',1e-6,'TolCon',1e-8);
options = optimset(options,'MaxFunEvals',1e+5 ,'MaxIter',100);
[uA, fvalA] = fmincon(func1,x0,[],[],[],[],LB,UB,cons1, options);
Net_get=uA(1:dim);
PV_get=uA(dim+1:2*dim);
charge_get=uA(dim*2+1:3*dim);
discharge_get=uA(dim*3+1:4*dim);
data_guang_new=uA(dim*4+3)*data_guang_A(:);
%% 修改颜色
load('color_list.mat')
% index=1:30;
index=1:10:30;
color_list1=color_list(index,:);
disp('园区优化过后的12个典型日成本')
disp(fvalA)帮我分析此代码并校正
最新发布