摘要:随着电动汽车(electric vehicle,EV)和第五代移动网络技术(5th generation mobile communication technology,5G)基站规模的不断增长,聚合商作为一种能够将众多EV和5G基站聚合起来的主体,在电力市场进行投标决策时会面临多重不确定因素。为应对市场电价和调频信号的不确定性以及EV和基站储能的时序响应能力可能存在互补性的问题,提出了一种基于目标鲁棒的EV和基站储能联合参与电力市场的决策方法。基于EV和基站储能单体模型建立了聚合商的聚合模型;计及市场电价和调频信号的不确定性,构建了聚合商参与电力市场的目标鲁棒优化模型;通过算例验证了所提模型相对于传统不确定性优化模型的优越性,以及EV和基站储能联合参与电力市场可显著提高聚合商的收益。所提策略可为聚合商的投标决策提供参考,聚合商可利用所提模型合理地平衡决策行为的经济性和鲁棒性。
关键词: 电动汽车;5G基站;聚合商;目标鲁棒;决策模型;
[1]詹泽伟,徐湘楚,纪陵,等.基于目标鲁棒的电动汽车及基站储能联合参与电力市场的决策模型[J/OL].电网技术,1-14[2024-07-15].https://doi.org/10.13335/j.1000-3673.pst.2023.2232.
为实现基于目标鲁棒的EV(电动汽车)和5G基站储能联合参与电力市场的决策方法,我们需要在MATLAB中构建模型来模拟和解决这个问题。以下步骤详细说明了如何通过MATLAB代码实现该模型:
步骤 1: 建立EV和基站储能单体模型
首先,构建EV和基站的储能模型,以便聚合商可以管理这些资源。
matlab
复制代码
function [evModel, baseStationModel] = buildStorageModels(evCapacity, baseStationCapacity)
% EV模型
evModel.capacity = evCapacity; % 电动汽车的总容量
evModel.chargeRate = evCapacity * 0.1; % 充电速率,假设为容量的10%
evModel.dischargeRate = evCapacity * 0.1; % 放电速率,同上
% 基站模型
baseStationModel.capacity = baseStationCapacity; % 基站储能的总容量
baseStationModel.chargeRate = baseStationCapacity * 0.1;
baseStationModel.dischargeRate = baseStationCapacity * 0.1;
fprintf('EV和基站储能模型建立完成。\n');
end
步骤 2: 构建聚合商的聚合模型
接下来,根据单体模型,构建聚合商的聚合模型,整合EV和基站的储能。
matlab
复制代码
function [aggregatorModel] = buildAggregatorModel(evModel, baseStationModel)
% 聚合EV和基站的储能
aggregatorModel.totalCapacity = evModel.capacity + baseStationModel.capacity;
aggregatorModel.totalChargeRate = evModel.chargeRate + baseStationModel.chargeRate;
aggregatorModel.totalDischargeRate = evModel.dischargeRate + baseStationModel.dischargeRate;
fprintf('聚合商聚合模型建立完成。\n');
end
步骤 3: 构建目标鲁棒优化模型
考虑市场电价和调频信号的不确定性,构建目标鲁棒优化模型。
matlab
复制代码
function [optimizationResults] = optimizeMarketParticipation(aggregatorModel, priceUncertainty, frequencySignalUncertainty)
% 定义决策变量:充电和放电决策
chargeDecision = optimvar('charge', 1, 'LowerBound', 0, 'UpperBound', aggregatorModel.totalChargeRate);
dischargeDecision = optimvar('discharge', 1, 'LowerBound', 0, 'UpperBound', aggregatorModel.totalDischargeRate);
% 目标函数:最大化利润
% 假设市场电价和调频补偿作为系数
expectedPrice = mean(priceUncertainty);
expectedCompensation = mean(frequencySignalUncertainty);
revenue = (dischargeDecision * expectedPrice + chargeDecision * expectedCompensation);
cost = chargeDecision * expectedPrice;
objective = revenue - cost;
% 创建优化问题
marketProblem = optimproblem('ObjectiveSense', 'maximize', 'Objective', objective);
% 求解优化问题
[sol, fval, exitflag, output] = solve(marketProblem);
optimizationResults = struct('Status', output.message, 'ObjectiveValue', fval, 'ChargeDecision', sol.charge, 'DischargeDecision', sol.discharge);
fprintf('市场参与优化完成,预期收益:%f\n', fval);
end
步骤 4: 整合并运行所有步骤
整合上述步骤,提供初始化数据并运行模型。
matlab
复制代码
% 初始化数据
evCapacity = 1000; % 1 MWh
baseStationCapacity = 500; % 500 kWh
% 市场电价和调频信号的不确定性数据
priceUncertainty = [0.05, 0.07, 0.06]; % $/kWh
frequencySignalUncertainty = [0.02, 0.03, 0.025]; % $/kWh
% 步骤1: 建立EV和基站储能模型
[evModel, baseStationModel] = buildStorageModels(evCapacity, baseStationCapacity);
% 步骤2: 构建聚合商模型
aggregatorModel = buildAggregatorModel(evModel, baseStationModel);
% 步骤3: 执行市场参与优化
optimizationResults = optimizeMarketParticipation(aggregatorModel, priceUncertainty, frequencySignalUncertainty);
% 输出结果
disp('Optimization results:');
disp(optimizationResults);
这些MATLAB代码段构成了一个完整的模拟流程,用于模拟EV和基站储能联合参与电力市场的决策,展示了数据初始化、模型构建和优化求解的全过程。实际应用中可以根据具体需求扩展模型的复杂度和功能。