储能参与调峰调频联合调度模型(matlab代码)

简介: 储能参与调峰调频联合调度模型(matlab代码)

1 主要内容

该程序是《Using Battery Storage for Peak Shaving and Frequency Regulation: Joint Optimization for Superlinear Gains》的代码,免费分享给大家。

主要内容为考虑储能同时参与调峰以及调频的联合调度模型,现有文章往往仅关注储能在调峰方面的能力,而实际上同时参与调峰调频将超线性的提高储能的收益,在建模方面,构建了考虑电池退化成本、充放电功率约束以及用户负荷不确定性的储能优化模型。该程序运行需要安装cvx求解器,可自行安装一下。

2 部分程序

clear;
clc;
close all;
fig_flag = 1; % Show figures
%% Define battery
battery.n = 5000; % Charge and discharge cycles
battery.cell = 0.3;% Cell price, $/Wh
battery.power = 1; % MW, battery power
battery.energy = battery.power*(3/60); % MWh, battery energy, up for 3min
battery.socmax = 0.8; 
battery.socmin = 0.2;
battery.socini = 0.6;
%% Price 
lambda.elec = 47; %Electricity price, $/MWh
lambda.peak = 12*1000/30/24; %Peak demand charge, 12,000$/MW
lambda.c = 50;  %Unit regulation revenue //$100 for new signal
lambda.p = 500; %Mismatch panelty //$500 for new signal
lambda.battery = battery.cell*10^(6)/...
    (2*battery.n*(battery.socmax-battery.socmin)); %Battery cost, $/MWh
%% Signal
load('PJM_Reg_Signal_2013_06-201405.mat');%PJM frequency regulation signal 2013-2014
load('UWEE_load.mat');
school = school(~isnan(school));
school = repmat(school,1,45); % change the school data resolution to 20s
eecs = reshape(school',35023*45,1);
rr = reshape(RegD_signal',365*43201,1); %resolution: 2s
r_tem = rr(1:2:end,:); %use old frequency regulation signal, change resolution to 4s
%r_tem = sig2018(1:2:end, :); %use new frequency regulation signal, change resolution to 4s
%% Parameters
hour = 1;
ts = 4/3600;
T = hour*1/ts;
tt = 4:4:3600*hour;
for i = 1:1
    r = r_tem((i-1)*T+1:i*T);
    
    % UW EE building load
    s = eecs((i-1)*T+1:6:i*T*6);
    s = s/max(s);
    
    
    % Reference electricity bill: Not using battery
    %[bill1.total, bill1.elec, bill1.peak, bill1.battery, bill1.reg...
    %            bill1.regc, bill1.regp] = = ref(lambda, T, ts, s); %if
    %            want to look at the seperate bill for peak demand charge &
    %            energy cost, uncomment this line;
    [bill1.total, ~] = ref(lambda, T, ts, s);
    
    % Electricity bill doing frequency regulation only 
    %[bill2.total, bill2.elec, bill2.peak, bll2.ibattery, bill2.reg...
    %            bill2.regc, bill2.regp] = reg_only(lambda, battery, T, ts, tt, s, r);
    [bill2.total, ~] = reg_only(fig_flag, lambda, battery, T, ts, tt, s, r);
    
    % Electricity bill doing peak shaving only
    %[bill3.total, bill3.elec, bill3.peak, bill3.battery, bill3.reg...
    %     bill3.regc, bill3.regp] = ps_only(lambda, battery, T, ts, tt, s);
    [bill3.total,~] = ps_only(fig_flag, lambda, battery, T, ts, tt, s);
    
    % Electricity bill doing joint optimization (both peak shaving & frequency regulation)
    %[bill4.total, bill4.elec, bill4.peak, bill4.battery, bill4.reg...
    %            bill4.regc, bill4.regp] = both(lambda, battery, T, ts, tt, s, r);
    [bill4.total,~] = both(fig_flag, lambda, battery, T, ts, tt, s, r);
    
    bill(i,:) = [bill1.total, bill2.total, bill3.total, bill4.total];
    
    %saving = ((bill1.total-bill4.total)-(2*bill1.total-bill2.total-bill3.total));
end
if fig_flag==1
    B = [bill1.total/bill1.total, bill2.total/bill1.total,...
        bill3.total/bill1.total, bill4.total/bill1.total];
    figure;
    hold all;
    bar(B,0.5)
    grid on
    hold off
    ylabel('Normalized electricity bill (bill/bill with no battery)');
    title('Normalized electricity bill under four policy');
end


3 部分结果


相关文章
|
3天前
|
算法 数据挖掘 数据安全/隐私保护
基于CS模型和CV模型的多目标协同滤波跟踪算法matlab仿真
本项目基于CS模型和CV模型的多目标协同滤波跟踪算法,旨在提高复杂场景下多个移动目标的跟踪精度和鲁棒性。通过融合目标间的关系和数据关联性,优化跟踪结果。程序在MATLAB2022A上运行,展示了真实轨迹与滤波轨迹的对比、位置及速度误差均值和均方误差等关键指标。核心代码包括对目标轨迹、速度及误差的详细绘图分析,验证了算法的有效性。该算法结合CS模型的初步聚类和CV模型的投票机制,增强了目标状态估计的准确性,尤其适用于遮挡、重叠和快速运动等复杂场景。
|
4天前
|
算法 数据处理 数据安全/隐私保护
分别通过LS和RML进行模型参数辨识matlab仿真
本程序通过最小二乘法(LS)和递归最大似然估计(RML)进行模型参数辨识,并在MATLAB2022A中仿真。仿真输出包括参数辨识误差及收敛值。程序展示了两种方法的参数估计值及其误差收敛情况,适用于控制系统设计与分析。最小二乘法适合离线批量处理,而RML则适用于实时在线处理。核心代码实现了LS辨识,并绘制了参数估计值和误差变化图。
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
数据链中常见电磁干扰matlab仿真,对比噪声调频,线性调频,噪声,扫频,灵巧五种干扰模型
本项目展示了用于分析和模拟电磁干扰对数据链系统影响的算法。通过Matlab 2022a运行,提供无水印效果图预览。完整代码包含详细中文注释及操作视频。理论部分涵盖五种常见干扰模型:噪声调频、线性调频、噪声、扫频和灵巧干扰,详细介绍其原理并进行对比分析。灵巧干扰采用智能技术如认知无线电和机器学习,自适应调整干扰策略以优化效果。
|
3月前
|
算法
基于Adaboost模型的数据预测和分类matlab仿真
AdaBoost(Adaptive Boosting)是一种由Yoav Freund和Robert Schapire于1995年提出的集成学习方法,旨在通过迭代训练多个弱分类器并赋予分类效果好的弱分类器更高权重,最终构建一个强分类器。该方法通过逐步调整样本权重,使算法更关注前一轮中被误分类的样本,从而逐步优化模型。示例代码在MATLAB 2022A版本中运行,展示了随着弱分类器数量增加,分类错误率的变化及测试数据的分类结果。
246 13
|
7月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
284 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
7月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
169 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
7月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
144 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
10月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
10月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)

热门文章

最新文章