已知室内空气等效热容110000、墙体等效热容18600000000,建筑面积为80平方米,8:00-21:00电价为0.56,21:00-8:00电价为0.32,削峰时段16:00-20:00的补偿价格为1.3元,填谷时段0:00-4:00的补偿价格为0.65元室内空气和墙体内侧的等效热阻分别为0.0012、墙体外侧和室外空气的等效热阻0.0093,室内温度、墙体温度、室外温度,电采暖设备制热功率,电采暖设备的额定功率,S(t)为电采暖设备的开关状态,温度在18-22摄氏度内波动,用matlab2021聚合商组织住宅区600户电采暖负荷参与电网削峰填谷(削峰时段、填谷时段及补偿价格见附件B),需确定削峰或填谷时段内可持续提供的最大调节功率值。问题4所解出的各时点可上调、下调功率结果是基于单纯满足温控区间约束条件的电采暖设备开关状态决定的,电采暖负荷参与功率调节将改变其原有的开关状态,进而影响后续可调节功率的时变特性。请计算600户电采暖负荷在削峰时段可提供的持续最大向下调节功率值程序
时间: 2024-02-13 17:05:22 浏览: 64
由于这是一道复杂的问题,需要进行详细的计算和模拟,需要编写相应的程序。以下是一个可能的程序实现,供您参考:
```matlab
% 电价
price = [0.32 * ones(1, 8), 0.56 * ones(1, 13), 0.32 * ones(1, 3)];
% 削峰时段补偿价格
peak_price = 1.3;
% 填谷时段补偿价格
valley_price = 0.65;
% 削峰时段
peak_period = [16, 20];
% 填谷时段
valley_period = [0, 4];
% 室内空气等效热容
C_eq = 110000;
% 墙体等效热容
C_wall = 18600000000;
% 建筑面积
A = 80;
% 室内空气和墙体内侧的等效热阻
R_in = 0.0012;
% 墙体外侧和室外空气的等效热阻
R_out = 0.0093;
% 室内温度范围
T_min = 18;
T_max = 22;
% 初始温度
T_in0 = 20;
T_wall0 = 20;
% 电采暖设备制热功率
P = 3000;
% 电采暖设备额定功率
P_max = 4000;
% 时间间隔
dt = 1;
% 削峰时段时长
peak_duration = (peak_period(2) - peak_period(1)) * 3600;
% 填谷时段时长
valley_duration = (valley_period(2) + 24 - valley_period(1)) * 3600;
% 总时间步数
n_steps = 24 * 3600 / dt;
% 总收益
total_profit = 0;
% 可调节功率
P_adjustable = zeros(1, n_steps);
% 循环处理600户电采暖负荷
for i = 1:600
% 初始化温度和功率
T_in = T_in0;
T_wall = T_wall0;
P_current = P;
% 循环模拟一天的运行情况
for j = 1:n_steps
% 当前时间
t = (j - 1) * dt;
% 当前电价
current_price = price(mod(floor(t / 3600), 24) + 1);
% 当前补偿价格
if t >= peak_period(1) * 3600 && t < peak_period(2) * 3600
current_compensation = peak_price;
elseif (t >= valley_period(1) * 3600 && t < 24 * 3600) || (t >= 0 && t < valley_period(2) * 3600)
current_compensation = valley_price;
else
current_compensation = 0;
end
% 计算当前温度
T_out = get_outdoor_temperature(t);
T_in_new = T_in + dt / C_eq * (k * A / R_in * (T_wall - T_in) + P_current - A / R_in * (T_in - T_out));
T_wall_new = T_wall + dt / C_wall * (k * A / d * (T_in - T_wall) - A / R_out * (T_wall - T_out));
% 判断是否需要调节功率
if T_in_new > T_max && P_current > 0
P_current = max(P_current - P_adjustable(j), 0);
elseif T_in_new < T_min && P_current < P_max
P_current = min(P_current + P_adjustable(j), P_max);
end
% 计算当前收益
current_profit = (current_price - current_compensation) * P_current * dt / 1000;
total_profit = total_profit + current_profit;
% 更新温度和功率
T_in = T_in_new;
T_wall = T_wall_new;
P_adjustable(j) = 0;
end
end
% 计算可调节功率
for j = 1:n_steps
% 当前时间
t = (j - 1) * dt;
% 当前电价
current_price = price(mod(floor(t / 3600), 24) + 1);
% 当前补偿价格
if t >= peak_period(1) * 3600 && t < peak_period(2) * 3600
current_compensation = peak_price;
elseif (t >= valley_period(1) * 3600 && t < 24 * 3600) || (t >= 0 && t < valley_period(2) * 3600)
current_compensation = valley_price;
else
current_compensation = 0;
end
% 计算当前温度
T_out = get_outdoor_temperature(t);
T_in_new = T_in0 + dt / C_eq * (k * A / R_in * (T_wall0 - T_in0) + P - A / R_in * (T_in0 - T_out));
T_wall_new = T_wall0 + dt / C_wall * (k * A / d * (T_in0 - T_wall0) - A / R_out * (T_wall0 - T_out));
% 判断是否需要调节功率
if T_in_new > T_max && P > 0
P_adjustable(j) = min(P, (T_in_new - T_max) * C_eq / dt);
elseif T_in_new < T_min && P < P_max
P_adjustable(j) = min(P_max - P, (T_min - T_in_new) * C_eq / dt);
end
% 计算当前收益
current_profit = (current_price - current_compensation) * P * dt / 1000;
total_profit = total_profit + current_profit;
end
% 输出结果
max_adjustable_power = min(P_adjustable(peak_period(1) * 3600 / dt + 1 : peak_period(2) * 3600 / dt));
fprintf
阅读全文