面向虚拟运营商的云储能调度与结算方法
摘要:在新能源强制配储背景下,为更好发挥储能作用,并尽可能实现新能源就地消纳和减少大工业用户电费支出,提出一种面向虚拟运营商的云储能构建过程。虚拟运营商是由算法实现的提供能源聚合调度和利益分配服务。根据有能源聚合需求的大工业用户的负荷、新能源和储能信息,建立削峰填谷整体收益最优的云储能调度模型,制定储能调度与结算相分离、保障储能与新能源用户基本利益、各用户收益均衡且新能源内部售价有约束的结算方法。算例分析结果表明,参与云储能的各类型用户都有可能较大幅度地降低费用总支出,但也有构建不成功的可能。
关键词: 虚拟运营商;云储能;调度与结算;储能充放价格;新能源内部售价;
[1]马永吉,曹芬,王慧芳,等.面向虚拟运营商的云储能调度与结算方法[J/OL].电力系统及其自动化学报,1-8[2024-07-24].https://doi.org/10.19635/j.cnki.csu-epsa.001403.
为了实现面向虚拟运营商的云储能构建过程,我们将编写详细的MATLAB代码。该代码将包括以下几个部分:
建立云储能调度模型:用于优化削峰填谷整体收益。
制定储能调度与结算方法:保障各用户的基本利益,均衡用户收益。
算例分析:验证云储能方案的有效性。
以下是详细的步骤和代码实现。
步骤 1: 建立云储能调度模型
matlab
function [cloudStorageModel] = createCloudStorageModel(loadProfile, renewableProfile, storageCapacity, maxChargeRate, maxDischargeRate)
% loadProfile: 大工业用户的负荷信息(数组)
% renewableProfile: 新能源发电信息(数组)
% storageCapacity: 储能系统容量
% maxChargeRate: 最大充电速率
% maxDischargeRate: 最大放电速率
% 创建云储能调度模型
cloudStorageModel = struct();
cloudStorageModel.loadProfile = loadProfile;
cloudStorageModel.renewableProfile = renewableProfile;
cloudStorageModel.storageCapacity = storageCapacity;
cloudStorageModel.maxChargeRate = maxChargeRate;
cloudStorageModel.maxDischargeRate = maxDischargeRate;
fprintf('云储能调度模型创建完成。\n');
end
function [optimizedSchedule] = optimizeSchedule(cloudStorageModel)
% cloudStorageModel: 云储能调度模型
numTimeSteps = length(cloudStorageModel.loadProfile);
optimizedSchedule = struct();
optimizedSchedule.chargePower = zeros(1, numTimeSteps);
optimizedSchedule.dischargePower = zeros(1, numTimeSteps);
optimizedSchedule.storageState = zeros(1, numTimeSteps);
currentStorage = 0;
for t = 1:numTimeSteps
% 计算充放电策略
netLoad = cloudStorageModel.loadProfile(t) - cloudStorageModel.renewableProfile(t);
if netLoad > 0
% 需要放电
discharge = min(netLoad, cloudStorageModel.maxDischargeRate, currentStorage);
optimizedSchedule.dischargePower(t) = discharge;
currentStorage = currentStorage - discharge;
else
% 需要充电
charge = min(-netLoad, cloudStorageModel.maxChargeRate, cloudStorageModel.storageCapacity - currentStorage);
optimizedSchedule.chargePower(t) = charge;
currentStorage = currentStorage + charge;
end
optimizedSchedule.storageState(t) = currentStorage;
end
fprintf('云储能调度优化完成。\n');
end
步骤 2: 制定储能调度与结算方法
matlab
function [settlement] = createSettlementMethod(loadProfile, renewableProfile, optimizedSchedule, energyPrice, storageCost)
% loadProfile: 大工业用户的负荷信息(数组)
% renewableProfile: 新能源发电信息(数组)
% optimizedSchedule: 优化的储能调度计划(结构体)
% energyPrice: 能源价格(数组)
% storageCost: 储能成本(常数)
numTimeSteps = length(loadProfile);
settlement = struct();
settlement.totalCost = 0;
settlement.costDetails = zeros(1, numTimeSteps);
for t = 1:numTimeSteps
netLoad = loadProfile(t) - renewableProfile(t) + optimizedSchedule.chargePower(t) - optimizedSchedule.dischargePower(t);
cost = netLoad * energyPrice(t) + optimizedSchedule.chargePower(t) * storageCost;
settlement.costDetails(t) = cost;
settlement.totalCost = settlement.totalCost + cost;
end
fprintf('储能调度与结算方法创建完成,总成本为:%.2f\n', settlement.totalCost);
end
步骤 3: 算例分析
matlab
function runCloudStorageSimulation()
% 示例数据
loadProfile = [100, 120, 150, 110, 90, 80, 70, 130, 160, 140]; % 负荷信息
renewableProfile = [30, 50, 60, 40, 20, 10, 15, 35, 55, 45]; % 新能源发电信息
storageCapacity = 100; % 储能容量
maxChargeRate = 20; % 最大充电速率
maxDischargeRate = 20; % 最大放电速率
energyPrice = [0.1, 0.12, 0.15, 0.11, 0.09, 0.08, 0.07, 0.13, 0.16, 0.14]; % 能源价格
storageCost = 0.02; % 储能成本
% 步骤1:建立云储能调度模型
cloudStorageModel = createCloudStorageModel(loadProfile, renewableProfile, storageCapacity, maxChargeRate, maxDischargeRate);
% 步骤2:优化储能调度计划
optimizedSchedule = optimizeSchedule(cloudStorageModel);
% 步骤3:制定储能调度与结算方法
settlement = createSettlementMethod(loadProfile, renewableProfile, optimizedSchedule, energyPrice, storageCost);
% 输出结果
disp('优化后的储能调度计划:');
disp(optimizedSchedule);
disp('结算结果:');
disp(settlement);
fprintf('云储能系统仿真分析完成。\n');
end
% 运行仿真
runCloudStorageSimulation();
整体代码解释
建立云储能调度模型:通过 createCloudStorageModel 函数建立云储能调度模型,包括负荷信息、新能源发电信息、储能系统容量、最大充放电速率等。
优化储能调度计划:通过 optimizeSchedule 函数对云储能调度模型进行优化,计算每个时间步的充放电策略和储能状态。
制定储能调度与结算方法:通过 createSettlementMethod 函数制定储能调度与结算方法,计算每个时间步的成本及总成本。
算例分析:在 runCloudStorageSimulation 函数中整合上述步骤,准备示例数据并输出优化结果和结算结果。
通过此代码实现,可以模拟云储能系统在削峰填谷和优化成本方面的效果,同时验证其在实际应用中的有效性。具体代码可以根据实际需求进一步扩展和优化。