请检查以下代码,并协助修改:clc
clear
%% 加载数据
P_wt_e = [693,718,883,698,888,683,723,695,678,721,568,583,614,693,678,703,692,693,808,994,869,813,873,808];
P_pv_e = [0,0,0,0,0,0,1650,2450,3250,3350,3400,3750,3450,3250,3200,2400,2100,1300,0,0,0,0,0,0];
P_Load_e = [2800,2700,3000,3800,4600,4600,5200,5400,5800,6300,7400,8700,9700,10000,10100,10300,9000,7000,6700,5900,4500,3000,2700,2800];
P_Load_h = [2350,2800,2850,3400,3800,4000,4700,4350,5100,7500,7600,8450,8700,8050,7700,7450,7200,6650,7300,5700,5100,4450,3600,3080];
P_Load_c = [1300,1400,1360,1700,1600,2000,3100,3450,3900,4400,4300,4500,5400,5000,5100,4950,4600,4710,4400,4000,3650,3570,2900,2420];
%% 参数设置
% 燃气轮机2台
P_GT_max = [1200,2800]; % 燃气发电机最大电功率
P_GT_min = [300,300]; % 燃气发电机最小电功率
% 燃气轮机效率参数
a = 8.935; b = 33.157; c = -27.081; d = 17.989;
% 余热回收锅炉1台
Q_HR_nom = 3500; % 余热回收系统的额定功率
eta_hr = 0.68; % 热回收效率
% 吸收式制冷机1台
L_AC_nom = 1900; % 吸收式制冷机的额定功率
eta_ac = 0.82; % 吸收制冷能效比
% 燃气锅炉1台
Q_GB_nom = 5500; % 额定热功率 (kW)
eta_gb = 0.85; % 燃气锅炉效率(添加缺失的效率参数)
% 电制冷机1台
L_EC_nom = 2300; % 额定冷功率 (kW)
eta_ec = 3.2; % 制冷能效比
%% ===== 添加储能系统参数 =====
% 电储能系统
E_bat_capacity = 5000; % 电池容量 (kWh)
E_bat_max_charge = 800; % 最大充电功率 (kW)
E_bat_max_discharge = 800; % 最大放电功率 (kW)
E_bat_eff = 0.92; % 充放电效率
E_bat_SOC_min = 0.2; % 最小荷电状态
E_bat_SOC_max = 0.95; % 最大荷电状态
E_bat_SOC_init = 0.5; % 初始荷电状态
% 热储能系统
H_tank_capacity = 4000; % 储热容量 (kWh)
H_tank_max_charge = 600; % 最大储热功率 (kW)
H_tank_max_discharge = 600;% 最大放热功率 (kW)
H_tank_eff = 0.95; % 储放热效率
H_tank_SOC_min = 0.1; % 最小荷热状态
H_tank_SOC_max = 0.98; % 最大荷热状态
H_tank_SOC_init = 0.4; % 初始荷热状态
% 冷储能系统
C_tank_capacity = 3000; % 储冷容量 (kWh)
C_tank_max_charge = 500; % 最大储冷功率 (kW)
C_tank_max_discharge = 500;% 最大放冷功率 (kW)
C_tank_eff = 0.90; % 储放冷效率
C_tank_SOC_min = 0.15; % 最小荷冷状态
C_tank_SOC_max = 0.96; % 最大荷冷状态
C_tank_SOC_init = 0.3; % 初始荷冷状态
%% 粒子群算法参数
w = 0.7; % 惯性权重
c1 = 1.8; % 个体学习因子
c2 = 1.8; % 社会学习因子
Num = 100; % 粒子个数
Tmax = 500; % 最大迭代次数
% 决策变量设置
Dim = 6; % 每小时的决策变量数
total_vars = 24 * Dim; % 总决策变量数
X = zeros(Num, total_vars); % 位置矩阵
V = zeros(Num, total_vars); % 速度矩阵
% 速度约束参数
Vmax = 0.3 * [repmat([P_GT_max, Q_HR_nom, L_AC_nom, Q_GB_nom, L_EC_nom], 1, 24)];
%% 粒子初始化
for i = 1:Num
for t = 1:24
idx = (t-1)*Dim; % 当前时刻索引偏移
% 燃气轮机初始化
for k = 1:2
X(i, idx+k) = unifrnd(P_GT_min(k), P_GT_max(k));
V(i, idx+k) = unifrnd(-P_GT_max(k), P_GT_max(k));
end
% 余热回收锅炉初始化
X(i, idx+3) = unifrnd(0, Q_HR_nom);
V(i, idx+3) = unifrnd(-Q_HR_nom, Q_HR_nom);
% 吸收式制冷机初始化
X(i, idx+4) = unifrnd(0, L_AC_nom);
V(i, idx+4) = unifrnd(-L_AC_nom, L_AC_nom);
% 燃气锅炉初始化
X(i, idx+5) = unifrnd(0, Q_GB_nom);
V(i, idx+5) = unifrnd(-Q_GB_nom, Q_GB_nom);
% 电制冷机初始化
X(i, idx+6) = unifrnd(0, L_EC_nom);
V(i, idx+6) = unifrnd(-L_EC_nom, L_EC_nom);
end
% 修复能量平衡
[X(i,:)] = repair_solution(X(i,:), P_wt_e, P_pv_e, P_Load_e, P_Load_h, P_Load_c, ...
P_GT_min, P_GT_max, a, b, c, d, Q_HR_nom, eta_hr, L_AC_nom, eta_ac, Q_GB_nom, eta_gb, L_EC_nom, eta_ec, ...
E_bat_capacity, E_bat_max_charge, E_bat_max_discharge, E_bat_eff, E_bat_SOC_min, E_bat_SOC_max, E_bat_SOC_init, ...
H_tank_capacity, H_tank_max_charge, H_tank_max_discharge, H_tank_eff, H_tank_SOC_min, H_tank_SOC_max, H_tank_SOC_init, ...
C_tank_capacity, C_tank_max_charge, C_tank_max_discharge, C_tank_eff, C_tank_SOC_min, C_tank_SOC_max, C_tank_SOC_init);
end
%% 初始化全局最优
pg = X(1,:);
fitness_values = zeros(1, Num);
for i = 1:Num
fitness_values(i) = fitness(X(i,:)); % 适应度评估
if fitness_values(i) < fitness(pg)
pg = X(i,:);
end
end
pbest = fitness_values; % 个体最优适应度值
pbest_pos = X; % 个体最优位置
%% 主优化循环
Gbest = zeros(1, Tmax);
for K = 1:Tmax
if ~mod(K, 10)
fprintf('>>>迭代次数: %d, 最优适应度: %f\n', K, fitness(pg));
end
for i = 1:Num
% 速度更新
r1 = rand;
r2 = rand;
V(i, :) = w*V(i, :) + c1*r1*(pbest_pos(i, :) - X(i, :)) + c2*r2*(pg - X(i, :));
% 速度约束
V(i,:) = sign(V(i,:)) .* min(abs(V(i,:)), Vmax);
% 位置更新
X(i, :) = X(i, :) + V(i, :);
% 位置边界约束
for t = 1:24
idx = (t-1)*Dim;
% 燃气轮机边界 (2台)
for k = 1:2
pos = idx + k;
X(i, pos) = min(max(X(i, pos), P_GT_min(k)), P_GT_max(k));
end
% 余热回收锅炉边界
X(i, idx+3) = min(max(X(i, idx+3), 0), Q_HR_nom);
% 吸收式制冷机边界
X(i, idx+4) = min(max(X(i, idx+4), 0), L_AC_nom);
% 燃气锅炉边界
X(i, idx+5) = min(max(X(i, idx+5), 0), Q_GB_nom);
% 电制冷机边界
X(i, idx+6) = min(max(X(i, idx+6), 0), L_EC_nom);
end
% 修复能量平衡
[X(i,:)] = repair_solution(X(i,:), P_wt_e, P_pv_e, P_Load_e, P_Load_h, P_Load_c, ...
P_GT_min, P_GT_max, a, b, c, d, Q_HR_nom, eta_hr, L_AC_nom, eta_ac, Q_GB_nom, eta_gb, L_EC_nom, eta_ec, ...
E_bat_capacity, E_bat_max_charge, E_bat_max_discharge, E_bat_eff, E_bat_SOC_min, E_bat_SOC_max, E_bat_SOC_init, ...
H_tank_capacity, H_tank_max_charge, H_tank_max_discharge, H_tank_eff, H_tank_SOC_min, H_tank_SOC_max, H_tank_SOC_init, ...
C_tank_capacity, C_tank_max_charge, C_tank_max_discharge, C_tank_eff, C_tank_SOC_min, C_tank_SOC_max, C_tank_SOC_init);
% 适应度评估与更新
current_fit = fitness(X(i,:));
if current_fit < pbest(i)
pbest(i) = current_fit;
pbest_pos(i,:) = X(i,:);
end
if current_fit < fitness(pg)
pg = X(i,:);
end
end
Gbest(K) = fitness(pg);
endfunction result = fitness(X)
%% 参数设置
% 燃气轮机2台
P_GT_max = [1200,2800]; % 燃气发电机最大电功率
P_GT_min = [300,300]; % 燃气发电机最小电功率
% 燃气轮机效率参数
a = 8.935; b = 33.157; c = -27.081; d = 17.989;
% 余热回收锅炉1台
Q_HR_nom = 3500; % 余热回收系统的额定功率
eta_hr = 0.68; % 热回收效率
% 吸收式制冷机1台
L_AC_nom = 1900; % 吸收式制冷机的额定功率
eta_ac = 0.82; % 吸收制冷能效比
% 燃气锅炉1台
Q_GB_nom = 5500; % 额定热功率 (kW)
eta_gb = 0.85; % 燃气锅炉效率(添加缺失的效率参数)
% 电制冷机1台
L_EC_nom = 2300; % 额定冷功率 (kW)
eta_ec = 3.2; % 制冷能效比
% 参数声明 (保持原有参数不变)
a = 8.935; b = 33.157; c = -27.081; d = 17.989;
P_GT_nom = [1200, 2800];
eta_ec = 3.2; eta_gb = 0.85; eta_hr = 0.68; eta_ac = 0.82;
eta_R = 0.034;
uf = 5.421; carbon_coeff = 0.004125; penalty_coeff = 1e6;
% 修正1:添加设备折旧成本参数
gt_start_cost = 200; % 燃气轮机启停成本 (元/次)
gb_start_cost = 50; % 锅炉启停成本 (元/次)
maint_gt = 0.02; % 燃气轮机维护成本 (元/kWh)
maint_gb = 0.01; % 锅炉维护成本 (元/kWh)
maint_ec = 0.005; % 电制冷机维护成本 (元/kWh)
maint_ac = 0.003; % 吸收制冷机维护成本 (元/kWh)
% 电价参数 (保持不变)
r_Elc = [0.182,0.182,0.182,0.182,0.182,0.182,0.518,0.518,0.882,0.882,...
0.882,0.882,0.518,0.518,0.70,0.70,0.70,0.70,0.70,0.406,0.406,0.406,0.14,0.14];
R_Elc = [0.14,0.14,0.14,0.14,0.14,0.14,0.406,0.406,0.70,0.70,...
0.70,0.70,0.406,0.406,0.70,0.70,0.70,0.70,0.70,0.406,0.406,0.406,0.14,0.14];
% 负荷数据 (保持不变)
P_wt_e = [693,718,883,698,888,683,723,695,678,721,568,583,614,693,678,703,692,693,808,994,869,813,873,808];
P_pv_e = [0,0,0,0,0,0,1650,2450,3250,3350,3400,3750,3450,3250,3200,2400,2100,1300,0,0,0,0,0,0];
P_Load_e = [2800,2700,3000,3800,4600,4600,5200,5400,5800,6300,7400,8700,9700,10000,10100,10300,9000,7000,6700,5900,4500,3000,2700,2800];
P_Load_h = [2350,2800,2850,3400,3800,4000,4700,4350,5100,7500,7600,8450,8700,8050,7700,7450,7200,6650,7300,5700,5100,4450,3600,3080];
P_Load_c = [1300,1400,1360,1700,1600,2000,3100,3450,3900,4400,4300,4500,5400,5000,5100,4950,4600,4710,4400,4000,3650,3570,2900,2420];
% 初始化变量
Dim = 6; num_hours = 24;
total_FE = 0; ele_cost = 0; gas_cost = 0;
total_penalty = 0; maint_cost = 0;
% 修正2:添加设备启停状态跟踪
prev_gt1 = 0; prev_gt2 = 0; prev_gb = 0;
for t = 1:num_hours
idx = (t-1)*Dim;
P_GT1_e = X(idx+1);
P_GT2_e = X(idx+2);
Q_HR_h = X(idx+3);
L_AC_c = X(idx+4);
Q_GB_h = X(idx+5);
L_EC_c = X(idx+6);
% === 设备启停状态检测 ===
gt1_on = (P_GT1_e > 0);
gt2_on = (P_GT2_e > 0);
gb_on = (Q_GB_h > 0);
% 启停成本计算
if gt1_on && ~prev_gt1, maint_cost = maint_cost + gt_start_cost; end
if gt2_on && ~prev_gt2, maint_cost = maint_cost + gt_start_cost; end
if gb_on && ~prev_gb, maint_cost = maint_cost + gb_start_cost; end
prev_gt1 = gt1_on;
prev_gt2 = gt2_on;
prev_gb = gb_on;
% === 效率计算 ===
ratio1 = P_GT1_e / P_GT_nom(1);
ratio2 = P_GT2_e / P_GT_nom(2);
eta_gt1 = max((a + b*ratio1 + c*ratio1^2 + d*ratio1^3)/100, 0.01);
eta_gt2 = max((a + b*ratio2 + c*ratio2^2 + d*ratio2^3)/100, 0.01);
% === 燃料消耗 ===
F_GT1 = eta_R * P_GT1_e / eta_gt1;
F_GT2 = eta_R * P_GT2_e / eta_gt2;
F_GB = eta_R * Q_GB_h / eta_gb;
FE_hourly = F_GT1 + F_GT2 + F_GB;
total_FE = total_FE + FE_hourly;
% === 能量平衡计算 ===
power_generation = P_GT1_e + P_GT2_e + P_wt_e(t) + P_pv_e(t);
power_consumption = P_Load_e(t) + L_EC_c / eta_ec;
grid_power = power_consumption - power_generation;
% 修正3:正确的购电成本计算
if grid_power > 0 % 购电
ele_cost = ele_cost + grid_power * r_Elc(t);
else % 售电
ele_cost = ele_cost + grid_power * R_Elc(t); % 负成本=收益
end
% === 余热回收约束 ===
GT_input = P_GT1_e/eta_gt1 + P_GT2_e/eta_gt2;
waste_heat_avail = (GT_input - (P_GT1_e + P_GT2_e)) * eta_hr;
% 修正4:更精确的余热回收惩罚
hr_violation = max(0, Q_HR_h - waste_heat_avail);
hr_eff_penalty = max(0, Q_HR_h - Q_HR_nom); % 设备容量约束
% === 热平衡 ===
H_supply = Q_HR_h + Q_GB_h;
H_demand = P_Load_h(t) + L_AC_c / eta_ac;
heat_imbal = H_supply - H_demand;
% === 冷平衡 ===
C_supply = L_AC_c + L_EC_c;
cold_imbal = C_supply - P_Load_c(t);
% 修正5:方向性惩罚项
imbalance_penalty = 0;
% 电力惩罚:不足为正,过剩为负(但已通过购售电处理)
% 热力惩罚
if heat_imbal < 0 % 热力不足
imbalance_penalty = imbalance_penalty + abs(heat_imbal)*5; % 重度惩罚
elseif heat_imbal > 0 % 热力过剩
imbalance_penalty = imbalance_penalty + heat_imbal*0.5; % 轻度惩罚
end
% 冷力惩罚
if cold_imbal < 0 % 冷力不足
imbalance_penalty = imbalance_penalty + abs(cold_imbal)*5;
elseif cold_imbal > 0 % 冷力过剩
imbalance_penalty = imbalance_penalty + cold_imbal*0.5;
end
% 累计惩罚
total_penalty = total_penalty + penalty_coeff * ...
(imbalance_penalty + hr_violation + hr_eff_penalty);
% === 设备维护成本 ===
maint_cost = maint_cost + ...
P_GT1_e*maint_gt + P_GT2_e*maint_gt + ...
Q_GB_h*maint_gb + ...
L_EC_c*maint_ec + L_AC_c*maint_ac;
end
% === 燃气成本 (分段计价) ===
if total_FE < 250
gas_unit_price = 5.257;
elseif total_FE <= 4167
gas_unit_price = 3.25;
else
gas_unit_price = 2.814;
end
gas_cost = total_FE * gas_unit_price;
% === 碳排放成本 ===
carbon_cost = carbon_coeff * uf * total_FE;
% === 总成本计算 ===
result = ele_cost + gas_cost + carbon_cost + maint_cost + total_penalty;
% === 调试输出 ===
fprintf('成本明细: 电力=%.2f元, 燃气=%.2f元, 碳=%.2f元, 维护=%.2f元, 惩罚=%.2f元\n',...
ele_cost, gas_cost, carbon_cost, maint_cost, total_penalty);
endfunction [x_repaired] = repair_solution(x, P_wt_e, P_pv_e, P_Load_e, P_Load_h, P_Load_c, ...
P_GT_min, P_GT_max, a, b, c, d, Q_HR_nom, eta_hr, L_AC_nom, eta_ac, Q_GB_nom, eta_gb, L_EC_nom, eta_ec, ...
E_bat_capacity, E_bat_max_charge, E_bat_max_discharge, E_bat_eff, E_bat_SOC_min, E_bat_SOC_max, E_bat_SOC_init, ...
H_tank_capacity, H_tank_max_charge, H_tank_max_discharge, H_tank_eff, H_tank_SOC_min, H_tank_SOC_max, H_tank_SOC_init, ...
C_tank_capacity, C_tank_max_charge, C_tank_max_discharge, C_tank_eff, C_tank_SOC_min, C_tank_SOC_max, C_tank_SOC_init)
Dim = 6;
x_repaired = x;
num_hours = 24;
% ===== 修正1:SOC数组扩容 =====
bat_soc = zeros(1, num_hours+1); % 多一个元素存储结束状态
heat_soc = zeros(1, num_hours+1);
cold_soc = zeros(1, num_hours+1);
% 设置初始SOC
bat_soc(1) = E_bat_SOC_init;
heat_soc(1) = H_tank_SOC_init;
cold_soc(1) = C_tank_SOC_init;
for t = 1:num_hours
idx = (t-1)*Dim;
P_gt1 = x_repaired(idx+1);
P_gt2 = x_repaired(idx+2);
Q_hr = x_repaired(idx+3);
L_ac = x_repaired(idx+4);
Q_gb = x_repaired(idx+5);
L_ec = x_repaired(idx+6);
% ===== 1. 设备边界约束 =====
P_gt1 = max(P_GT_min(1), min(P_gt1, P_GT_max(1)));
P_gt2 = max(P_GT_min(2), min(P_gt2, P_GT_max(2)));
x_repaired(idx+1:idx+2) = [P_gt1, P_gt2];
P_gt_total = P_gt1 + P_gt2;
% 余热回收约束
ratio1 = P_gt1 / P_GT_max(1);
ratio2 = P_gt2 / P_GT_max(2);
eta_gt1 = max((a + b*ratio1 + c*ratio1^2 + d*ratio1^3)/100, 0.01);
eta_gt2 = max((a + b*ratio2 + c*ratio2^2 + d*ratio2^3)/100, 0.01);
waste_heat_avail = ((P_gt1/eta_gt1 - P_gt1) + (P_gt2/eta_gt2 - P_gt2)) * eta_hr;
Q_hr = min(Q_hr, waste_heat_avail);
x_repaired(idx+3) = min(max(Q_hr, 0), Q_HR_nom);
% ===== 2. 能量平衡计算 =====
P_e_supply = P_gt1 + P_gt2 + P_wt_e(t) + P_pv_e(t);
P_e_demand = P_Load_e(t) + L_ec/eta_ec;
e_imbalance = P_e_supply - P_e_demand;
H_supply = Q_hr + Q_gb;
H_demand = P_Load_h(t) + L_ac/eta_ac;
h_imbalance = H_supply - H_demand;
C_supply = L_ac + L_ec;
C_demand = P_Load_c(t);
c_imbalance = C_supply - C_demand;
% ===== 3. 储能平衡处理 =====
% 电储能
if e_imbalance > 0 % 充电
max_charge = min([...
e_imbalance, ...
E_bat_max_charge, ...
(E_bat_SOC_max - bat_soc(t)) * E_bat_capacity / E_bat_eff ...
]);
bat_soc(t+1) = bat_soc(t) + max_charge * E_bat_eff / E_bat_capacity;
e_imbalance = e_imbalance - max_charge; % 更新不平衡量
elseif e_imbalance < 0 % 放电
% ===== 修正2:放电效率模型 =====
max_discharge = min([...
-e_imbalance, ...
E_bat_max_discharge, ...
(bat_soc(t) - E_bat_SOC_min) * E_bat_capacity * E_bat_eff ...
]);
bat_soc(t+1) = bat_soc(t) - max_discharge / (E_bat_eff * E_bat_capacity);
e_imbalance = e_imbalance + max_discharge; % 更新不平衡量
else
bat_soc(t+1) = bat_soc(t);
end
% 热储能
if h_imbalance > 0 % 储热
max_charge_heat = min([...
h_imbalance, ...
H_tank_max_charge, ...
(H_tank_SOC_max - heat_soc(t)) * H_tank_capacity / H_tank_eff ...
]);
heat_soc(t+1) = heat_soc(t) + max_charge_heat * H_tank_eff / H_tank_capacity;
h_imbalance = h_imbalance - max_charge_heat;
elseif h_imbalance < 0 % 放热
max_discharge_heat = min([...
-h_imbalance, ...
H_tank_max_discharge, ...
(heat_soc(t) - H_tank_SOC_min) * H_tank_capacity * H_tank_eff ...
]);
heat_soc(t+1) = heat_soc(t) - max_discharge_heat / (H_tank_eff * H_tank_capacity);
h_imbalance = h_imbalance + max_discharge_heat;
else
heat_soc(t+1) = heat_soc(t);
end
% 冷储能
if c_imbalance > 0 % 储冷
max_charge_cold = min([...
c_imbalance, ...
C_tank_max_charge, ...
(C_tank_SOC_max - cold_soc(t)) * C_tank_capacity / C_tank_eff ...
]);
cold_soc(t+1) = cold_soc(t) + max_charge_cold * C_tank_eff / C_tank_capacity;
c_imbalance = c_imbalance - max_charge_cold;
elseif c_imbalance < 0 % 放冷
max_discharge_cold = min([...
-c_imbalance, ...
C_tank_max_discharge, ...
(cold_soc(t) - C_tank_SOC_min) * C_tank_capacity * C_tank_eff ...
]);
cold_soc(t+1) = cold_soc(t) - max_discharge_cold / (C_tank_eff * C_tank_capacity);
c_imbalance = c_imbalance + max_discharge_cold;
else
cold_soc(t+1) = cold_soc(t);
end
% ===== 修正3:SOC边界保护 =====
bat_soc(t+1) = min(max(bat_soc(t+1), E_bat_SOC_min), E_bat_SOC_max);
heat_soc(t+1) = min(max(heat_soc(t+1), H_tank_SOC_min), H_tank_SOC_max);
cold_soc(t+1) = min(max(cold_soc(t+1), C_tank_SOC_min), C_tank_SOC_max);
% ===== 4. 二次调节剩余不平衡 =====
% ===== 修正4:设备调整策略 =====
% 电力不平衡调整(调节电制冷)
if abs(e_imbalance) > 1e-3
if e_imbalance > 0 % 电力过剩
% 增加电制冷
L_ec_new = min(L_ec + e_imbalance * eta_ec, L_EC_nom);
delta = (L_ec_new - L_ec) / eta_ec;
L_ec = L_ec_new;
e_imbalance = e_imbalance - delta;
else % 电力不足
% 减少电制冷
L_ec_new = max(L_ec + e_imbalance * eta_ec, 0);
delta = (L_ec - L_ec_new) / eta_ec;
L_ec = L_ec_new;
e_imbalance = e_imbalance + delta;
end
x_repaired(idx+6) = L_ec;
end
% 热力不平衡调整(调节燃气锅炉)
if abs(h_imbalance) > 1e-3
Q_gb = Q_gb - h_imbalance;
Q_gb = min(max(Q_gb, 0), Q_GB_nom);
x_repaired(idx+5) = Q_gb;
% 注意:此处简化处理,实际需考虑调整后的热平衡
end
% 冷量不平衡调整(吸收制冷优先)
cold_deficit = max(0, -c_imbalance); % 取正值表示不足量
if cold_deficit > 0
% 优先增加吸收式制冷
max_ac_increase = min(cold_deficit, L_AC_nom - L_ac);
L_ac = L_ac + max_ac_increase;
cold_deficit = cold_deficit - max_ac_increase;
% 其次增加电制冷
if cold_deficit > 0
max_ec_increase = min(cold_deficit, L_EC_nom - L_ec);
L_ec = L_ec + max_ec_increase;
end
elseif c_imbalance > 0 % 冷量过剩
% 减少吸收式制冷
L_ac = max(L_ac - c_imbalance, 0);
end
% 更新决策变量
x_repaired(idx+4) = min(max(L_ac, 0), L_AC_nom);
x_repaired(idx+6) = min(max(L_ec, 0), L_EC_nom);
end
end