已知室内空气等效热容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 13:05:43 浏览: 66
根据题目所给的信息,我们可以将求解削峰时段可提供的持续最大向下调节功率值的程序扩展到600户电采暖负荷上,具体步骤如下:
1. 定义函数,用于计算某一户电采暖负荷在削峰时段可提供的持续最大向下调节功率值:
```matlab
function P_max = calc_household_P_max(P_rated, S_init, T_init_air, T_init_wall)
% 定义微分方程组
function dy = heat_eq(t, y, P_heat, R_air_in, R_wall_in, R_wall_out, C_air, C_wall, A)
% y(1) = T_air, y(2) = T_wall
P_loss = (y(2)-T_out) / R_wall_out;
dT_air_dt = 1 / C_air * ((y(2)-y(1)) / R_wall_in + (P_heat-P_loss) / A);
dT_wall_dt = 1 / C_wall * ((y(1)-y(2)) / R_wall_in + (T_out-y(2)) / R_wall_out);
dy = [dT_air_dt; dT_wall_dt];
end
% 定义削峰和填谷时段的温度控制函数
function S = get_switch_status(t, T_air, T_wall)
if (t >= 16 && t <= 20) || (t >= 0 && t <= 4)
if T_air > 22 || T_wall > 22
S = 0;
elseif T_air < 18 && T_wall < 18
S = 1;
else
S = 0.5;
end
else
if T_air > 22 || T_wall > 22
S = 0;
elseif T_air < 18 && T_wall < 18
S = 1;
else
S = 0.5;
end
end
end
% 定义求解微分方程组的函数
function [T_air, T_wall] = solve_heat_eq(P_heat, R_air_in, R_wall_in, R_wall_out, C_air, C_wall, A)
options = odeset('RelTol', 1e-6, 'AbsTol', 1e-6);
[t, y] = ode45(@(t, y) heat_eq(t, y, P_heat, R_air_in, R_wall_in, R_wall_out, C_air, C_wall, A), [0, 24*3600], [T_init_air, T_init_wall], options);
T_air = y(:, 1);
T_wall = y(:, 2);
end
% 计算削峰时段可提供的持续最大向下调节功率值
P_max = 0;
for i = 1:length(t)
S = get_switch_status(t(i), T_air(i), T_wall(i));
P_adjust = P_rated * (S - S_init);
if P_adjust < 0 && abs(P_adjust) > P_max
P_max = abs(P_adjust);
end
end
end
```
2. 针对600户电采暖负荷,定义变量和参数,并循环计算每一户的削峰时段可提供的持续最大向下调节功率值:
```matlab
% 定义变量和参数
N_houses = 600;
P_rated = 10e3; % 电采暖设备的额定功率
S_init = 0.5; % 初始开关状态
T_init_air = 20; % 初始室内空气温度
T_init_wall = 18; % 初始墙体温度
% 循环计算每一户的削峰时段可提供的持续最大向下调节功率值
P_max_all = zeros(N_houses, 1);
for i = 1:N_houses
% TODO: 获取当前户的参数
% P_heat = ?
% R_air_in = ?
% R_wall_in = ?
% R_wall_out = ?
% C_air = ?
% C_wall = ?
% A = ?
P_max_all(i) = calc_household_P_max(P_rated, S_init, T_init_air, T_init_wall);
end
% 计算所有户的削峰时段可提供的持续最大向下调节功率值之和
P_max_total = sum(P_max_all);
```
需要注意的是,上述代码中需要根据具体情况,获取每一户电采暖负荷的参数,例如室内空气和墙体的等效热容、等效热阻、建筑面积等。在实际应用中,可以通过调查或者测量获得这些参数。
阅读全文