MATLAB代码:基于分时电价条件下家庭能量管理策略研究
关键词:家庭能量管理模型 分时电价 空调 电动汽车 可平移负荷
参考文档:《基于分时电价和蓄电池实时控制策略的家庭能量系统优化》参考部分模型
《计及舒适度的家庭能量管理系统优化控制策略》参考部分模型
仿真平台:MATLAB+CPLEX/gurobi
优势:代码具有一定的深度和创新性,注释清晰,非烂大街的代码,非常精品!
主要内容:代码主要做的是家庭能量管理模型,首先构建了电动汽车、空调、热水器以及烘干机等若干家庭用户用电设备的能量管理模型,其次,考虑在分时电价、动态电价以及动态电价下休息日和工作日家庭用户的最优能量管理策略,依次通过CPLEX/GUROBI完成不同场景下居民用电策略的优化,该代码适合新手学习以及在此基础上进行拓展,代码质量非常高,保姆级的注释以及人性化的模块子程序,所有数据均有可靠来源,
实现效果:具体如下
代码获取方式:【代码分享】基于分时电价条件下家庭能量管理策略研究(考虑多类型需求侧资源)
load('Ele_Price.mat');%导入电价
load('Pho_Power.mat');%导入光伏发电功率
load('Rigid_Load.mat');%导入刚性负荷
load('Tem_Out.mat');%导入室外温度
load('Hot_Water.mat');%导入每日热水用水量
load('time.mat');%导入时间
n = 48;%将一天分成48组,半小时一组
%刚性负荷>rigid load>rl
%洗衣机>washing machine>wm 功率一般为0.5kw 每次使用时间为1h,调度时间为 19:00-22:00
%热水壶>thermos jug>tj 功率一般为1.5kw 每次使用时间为0.5h,调度时间为 21:00-7:00
%吸尘器>dust collector>dc 功率一般为1kw 工作日不考虑使用
%洗碗机>dish-washing machine>dwm 功率一般为0.5kw 每次使用时间为1h,调度时间为 20:00-2:00
%消毒柜>dishinfection cabinet>dfc 功率一般为0.3kw 每次使用时间为0.5h,调度时间为 19:00-7:00
%烘干机>dryer>dy 功率一般为1.5kw 每次使用时间为1h,调度时间为 22:00-7:00
%电动汽车>electric vehicle>ev 功率一般为3kw,充电时间3h,调度时间为18:00-6:00
%电脑>personal computer>pc 0.3/0.15 高功率使用时间为2h,调度时间为19:00-22:00
%低功率调度时间为18:00-0:00
%空调>air conditioner>ac 2kw 假定当空调使用时,可以保持室内温度维持在25-27度,调度时间为全天
%热水器>water heater>wh 2.5kw 假定当热水器使用时,可以保持热水温度维持在45-55度,调度时间为7:00-0:00
% 决策变量
% 2.1刚性负荷模型
x_rl = Rigid_Load(1,:);
% 2.2可转移负荷模型
x_wm = binvar(1,n,'full');
x_tj = binvar(1,n,'full');
%x_dc = binvar(1,n,'full');
x_dwm = binvar(1,n,'full');
x_dfc = binvar(1,n,'full');
x_dy = binvar(1,n,'full');
y_wm = binvar(1,n,'full');
y_tj = binvar(1,n,'full');
%y_dc = binvar(1,n,'full');
y_dwm = binvar(1,n,'full');
y_dfc = binvar(1,n,'full');
y_dy = binvar(1,n,'full');
% 2.3可中断负荷模型
x_ev = binvar(1,n,'full');
% 2.4可削减负荷模型
x_pc = intvar(1,n,'full');
% 2.5温控负荷模型
t_ac = intvar(1,n,'full');
t_wh = intvar(1,n,'full');
% 目标
m = x_wm*0.25+x_tj*0.75+x_dwm*0.25+x_dfc*0.15+x_dy*0.75+x_ev*1.5+x_pc*0.075;
for i = 1:n
if i == 1
m(1,i) = m(1,i) + abs(((t_ac(1,i)-27*exp(-0.5/(0.57*6)))/(1-exp(-0.5/(0.57*6)))-Tem_Out(1,i))/(2.9*6))*0.5;
else
m(1,i) = m(1,i) + abs(((t_ac(1,i)-t_ac(1,i-1)*exp(-0.5/(0.57*6)))/(1-exp(-0.5/(0.57*6)))-Tem_Out(1,i))/(2.9*6))*0.5;
end
end
for i = 1:n
if Hot_Water(1,i) ~=0
if i == 1
m(1,i) = m(1,i) + abs(((t_wh(1,i)-27*exp(-0.5/(0.08*332)))/(1-exp(-0.5/(0.08*332)))-27-332*(Hot_Water(1,i)*0.0042*(t_wh(1,i)-27))/0.5)/(0.95*332))*0.5;
else
m(1,i) = m(1,i) + abs(((t_wh(1,i)-t_wh(1,i-1)*exp(-0.5/(0.08*332)))/(1-exp(-0.5/(0.08*332)))-27-332*(Hot_Water(1,i)*0.0042*(t_wh(1,i)-27))/0.5)/(0.95*332))*0.5;
end
end
end
z = sum(Ele_Price(3,:).*(m-Pho_Power*0.3));%考虑到家用光伏设备发电质量,需要乘上一个0.8的系数
% 约束添加
C = [];
%洗衣机约束条件
C = [C,sum(x_wm) == 2,sum(x_wm(1,11:16)) == 2];
C = [C,sum(y_wm) == 1,sum(y_wm(1,11:15)) == 1];
x_wm(1,1) = 0;
for i = 2:n
x_wm(1,i) = y_wm(1,i-1) + y_wm(1,i);
end
%热水壶约束条件
C = [C,sum(x_tj) == 1,sum(x_tj(1,15:34)) == 1];
C = [C,sum(y_tj) == 1,sum(y_tj(1,15:34)) == 1];
for i = 1:n
x_tj(1,i) = y_tj(1,i);
end
%洗碗机约束条件
C = [C,sum(x_dwm) == 2,sum(x_dwm(1,13:24)) == 2];
C = [C,sum(y_dwm) == 1,sum(y_dwm(1,13:23)) == 1];
x_dwm(1,1) = 0;
for i = 2:n
x_dwm(1,i) = y_dwm(1,i-1) + y_dwm(1,i);
end
%消毒柜约束条件
C = [C,sum(x_dfc) == 1,sum(x_dfc(1,11:34)) == 1];
C = [C,sum(y_dfc) == 1,sum(y_dfc(1,11:34)) == 1];
for i = 1:n
x_dfc(1,i) = y_dfc(1,i);
end
%烘干机约束条件
C = [C,sum(x_dy) == 2,sum(x_dy(1,17:34)) == 2];
C = [C,sum(y_dy) == 1,sum(y_dy(1,17:33)) == 1];
x_dy(1,1) = 0;
for i = 2:n
x_dy(1,i) = y_dy(1,i-1) + y_dy(1,i);
end