基于MATLAB的储能参与电能量-调频市场联合出清模型

matlab代码:储能参与电能量—辅助服务调频市场联合出清代码。 本代码是电力市场出清的一个重要方向,由于储能的诸多特性,使其适合于辅助服务市场的调频市场,储能的参与也能获利。 首先利用SCUC模型确定机组出力计划和储能充放电计划,然后利用SCED模型进行市场出清,确定节点电价,调频容量电价和调频里程电价。 最后得到出清和收益结果。 本程序在IEEE39节点系统中测试,结果正确,注释清晰。 有参考文档

模型概述

本代码实现了一个完整的电力市场联合出清模型,采用SCUC-SCED两阶段优化方法,研究储能系统同时参与电能量市场辅助服务调频市场的出清机制。模型基于IEEE 39节点系统构建,包含10台火电机组和4座储能电站。

核心模型架构

第一阶段:SCUC(安全约束机组组合)

文件:main_SCUC.m

功能:确定96时段的机组启停计划和储能充放电状态计划

主要决策变量

  • u:火电机组启停状态(二进制变量)
  • uch, udis:储能充放电状态(二进制变量)
  • P, P_cap:机组出力和调频容量
  • Pch, Pdis, Pes_cap:储能充放电功率和调频容量

关键约束

% 机组最小启停时间约束
for i=1:gen_num
    for t=2:T
        indicator=u(i,t)-u(i,t-1); %启动标识
        range=t:min(T,t+genunit.time(i)-1);
        cons=[cons, u(i,range)>=indicator];
    end
end

第二阶段:SCED(安全约束经济调度)

文件:main_SCED.m

功能:在SCUC确定的计划基础上,进行精细化出清计算

输入数据

  • SCUC阶段的机组启停计划(u_scuc.mat
  • 储能状态计划(uchscuc.mat, udisscuc.mat
  • 启停成本(costH.mat, costJ.mat

市场机制设计

调频市场特殊处理

根据说明文件,代码采用独特的调频价格计算方式:

% 调整报价 - 考虑调频性能
genunit.price_mil=genunit.price_mil./genunit.fm_perfor;
genunit.price_cap=genunit.price_cap./genunit.fm_perfor;

重要说明

  • 调频里程通过调频容量 × 历史里程-容量比计算
  • 调频容量电价实际包含了容量电价和里程电价两部分
  • 调频里程约束的对偶变量为0

价格形成机制

节点电价计算

for t=1:T
    price_node(:,t)=balance(t)*ones(bus_num,1)-(HT*(branch_up(:,t)-branch_down(:,t)));
end

调频价格获取

for t=1:T
    price_cap(:,t)=dual(cons(5370+2*t))/baseMVA; %调频容量出清价格
    price_mil(:,t)=dual(cons(5371+2*t))/baseMVA; %调频里程出清价格
end

技术特色

1. 储能建模精细化

% 储能状态互斥约束
cons=[cons, u_ch(i,t)+u_dis(i,t)>=0, u_ch(i,t)+u_dis(i,t)<=1];

% 容量动态约束
cons=[cons, S_es(i,t)==S_es(i,t-1)+P_ch(i,t)*storage.eff(i)-P_dis(i,t)/storage.eff(i)];

% 调频容量申报约束
cons=[cons, P_ch(i,t)+Pes_cap(i,t)<=storage.power(i)];
cons=[cons, P_dis(i,t)+Pes_cap(i,t)<=storage.power(i)];

2. 网络约束完整

采用功率转移分布因子(PTDF) 法计算支路潮流:

H(:,noslack)= full(Bf(:,noref) / Bbus(noslack,noref)); %PTDF矩阵
Pline(:,t)==H*(Ag*P(:,t)+Ae*P_dis(:,t)-P_load(:,t)-Ae*P_ch(:,t));

3. 调频需求保障

% 调频容量需求(8%负荷)
cons=[cons, sum(P_cap(:,t))+sum(Pes_cap(:,t))>=load_all(t)*0.08];

% 调频里程需求(80%负荷)
cons=[cons, sum(P_cap(:,t))*genunit.mil_cap(1)+sum(Pes_cap(:,t))*storage.mil_cap(1)>=load_all(t)*0.8];

经济性分析

市场盈余计算

% 收入:负荷支付
revenue(t)=revenue(t)+(price_node(i,t)+price_cap(t)+price_mil(t))*P_load(i,t)*baseMVA;

% 支出:支付给发电商和储能
pay_gen(t)=pay_gen(t)+price_node(i,t)*P(i,t)*baseMVA+(price_cap(t)+price_mil(t))*P_cap(i,t)*baseMVA;

参与者收益计算

火电机组收益 = 电能量收益 + 调频收益 - 燃料成本 - 启停成本

储能收益 = 电能量收益 + 调频收益 - 充放电成本

运行说明

环境要求

  • MATLAB + YALMIP
  • CPLEX或Gurobi求解器

数据文件

  • 参数输入2.xlsx:包含机组、储能、负荷、网络参数
  • 四个工作表:火电机组、储能电站、负荷曲线、网络参数

输出结果

  • SCED求解结果.xlsx:完整的出清结果
  • 支路潮流、市场中标、节点电价、调频价格等
  • 可视化图表:电能量市场和调频市场中标情况

应用价值

本模型为研究储能参与电力市场提供了完整的技术框架,特别在:

  1. 储能商业化模式:探索储能通过调频服务获利的可行性
  2. 市场机制设计:验证联合出清机制的有效性
  3. 系统运行优化:协调电能量与辅助服务市场的关系
  4. 投资决策支持:为储能投资提供经济性分析工具

该代码具有良好的扩展性,可根据实际需求调整市场规则、网络结构和参与者类型。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值