当前位置: 首页 > news >正文

基于条件风险价值CVaR的微网虚拟电厂多场景随机规划与风险价值度量研究

基于条件风险价值CVaR的微网/虚拟电厂多场景随机规划 摘要:构建了含风、光、燃、储的微网/虚拟电厂优化调度模型,在此基础上,考虑多个风光出力场景,构建了微网随机优化调度模型,并在此基础上,基于条件风险价值理论,度量不确定性场景的潜在风险价值,且风险系数可以自由调节,从而观测不同风险偏好下微网的调度策略,深度体会CVaR的有效性。

一、核心目标

本代码旨在构建含风光燃储及电动汽车(EV)的电-冷综合能源微网虚拟电厂(VPP)日前经济调度模型,核心目标如下:

  1. 统筹光伏、燃气轮机、储能系统与电力市场购售电的协同运作,在3个风光出力场景下实现多场景随机优化调度;
  2. 引入条件风险价值(CVaR)理论度量风光出力不确定性带来的潜在经济风险,支持风险系数自由调节,适配不同风险偏好下的调度需求;
  3. 满足设备运行约束、系统功率平衡约束及用户舒适度相关要求(通过冷负荷间接体现),实现调度成本与风险的综合最优。

二、代码框架与流程图

(一)代码框架

VPP_ac_ev.m ├── 1.程序初始化:环境清理与基础参数定义 ├── 2.变量声明:决策变量与状态变量定义(含连续变量、二进制变量) ├── 3.约束条件构建:设备运行约束、系统平衡约束、CVaR风险约束 ├── 4.目标函数构建:期望调度成本+CVaR风险成本 ├── 5.优化求解配置:调用CPLEX求解器并设置求解参数 ├── 6.结果处理:求解结果读取与数值提取 └── 7.结果展示:功率平衡、市场交易量等可视化图表生成

(二)核心流程图

graph TD A[程序启动] --> B[初始化:clc清空命令行+clear清除变量+close all关闭图形窗口] B --> C[参数定义:市场电价、设备参数、负荷数据、光伏出力、场景概率] C --> D[变量声明:sdpvar定义连续变量+binvar定义二进制变量] D --> E[约束条件构建] E --> E1[燃气轮机约束:出力上下限、爬坡率、启停状态约束] E --> E2[购售电约束:状态互斥、交易量上限约束] E --> E3[储能约束:充放电功率、蓄电量平衡、蓄电量上下限约束] E --> E4[功率平衡约束:供需侧功率等式约束] E --> E5[CVaR风险约束:风险损失超额量约束、非负约束] E --> F[目标函数构建:场景加权期望成本+风险系数×CVaR风险成本] F --> G[求解器配置:设置CPLEX为求解器,配置精度、日志显示参数] G --> H[调用optimize函数求解优化模型] H --> I{求解是否成功?} I -- 是 --> J[读取结果:购售电量、设备出力、蓄电量、CVaR值] I -- 否 --> K[输出“求解出错”错误信息] J --> L[可视化展示:3个场景功率平衡图、3个场景市场交易量对比图] L --> M[程序结束]

三、核心模块详细说明

(一)程序初始化模块

  1. 环境清理:通过clcclearclose all三条命令,清除MATLAB工作区残留变量、命令行冗余信息及历史图形窗口,确保程序独立运行无干扰;
  2. 基础参数定义:
    - 市场电价参数:购电电价xb与售电电价xs(二者取值完全一致),为24小时分时电价数组,涵盖谷段(0-5时、22-23时)630元/MWh、平段(6-8时、15-16时、21时)1020元/MWh、峰段(9-14时、17-20时)1520元/MWh三个时段;
    - 燃气轮机参数:固定开机费用a=600元、分段线性化费用kcp=300元/(MW·h)、启停费用sconv=600元、最大出力gtmax=3.31MW、最小出力gtmin=1.3MW、爬坡率ramp=1.5MW/h;
    - 储能系统参数:最大充电功率gescmax=1MW、最大放电功率gesdmax=1MW、最大蓄电量sessmax=4MWh、最小蓄电量sessmin=0MWh、充电效率uesc=0.95、放电效率uesd=0.95
    - 系统与负荷参数:最大市场交易量pmgmax=20MW、电负荷pload为24小时时序数据(经1.3倍系数调整)、光伏出力ppvppv.xlsx文件读取并转置,场景数量Sw=3
    - 场景概率参数:3个风光出力场景的发生概率pai=[0.2,0.3,0.5]

(二)变量声明模块

基于YALMIP工具箱的sdpvar(连续决策变量)和binvar(二进制状态变量)进行定义,变量详情如下:

变量类型变量名维度核心含义取值约束
二进制变量umob3×24各场景各时段购电状态0(不购电)或1(购电)
二进制变量umos3×24各场景各时段售电状态0(不售电)或1(售电)
二进制变量xconv3×24各场景各时段燃气轮机工作状态0(停机)或1(运行)
二进制变量yconv3×24各场景各时段燃气轮机启停状态0(无启停)或1(启停)
连续变量pmgb3×24各场景各时段市场购电量≥0,单位:MW
连续变量pmgs3×24各场景各时段市场售电量≥0,单位:MW
连续变量pmt3×24各场景各时段燃气轮机出力≥0,单位:MW
连续变量gesc3×24各场景各时段储能充电功率≥0,单位:MW
连续变量gesd3×24各场景各时段储能放电功率≥0,单位:MW
连续变量sess3×24各场景各时段储能蓄电量≥0,单位:MWh
连续变量zk3×1各场景CVaR风险损失超额量≥0
连续变量var1×1CVaR风险阈值变量无强制非负(代码中注释了var≥0约束)

(三)约束条件构建模块

约束体系围绕设备运行物理特性、系统功率平衡及风险控制构建,共5类核心约束:

  1. 燃气轮机运行约束:
    - 出力上下限约束:xconv(:,t)gtmin <= pmt(:,t) <= xconv(:,t)gtmax(t=1-24),即燃气轮机停机时出力为0,运行时出力在最小与最大出力之间;
    - 初始爬坡率约束:pmt(:,1) <= ramp(首时段出力突变不超过爬坡率);
    - 初始工作状态约束:xconv(:,1) <= yconv(1)(首时段工作状态与启停状态关联);
    - 时序爬坡率约束:-ramp <= pmt(:,t)-pmt(:,t-1) <= ramp(t=2-24),即相邻时段出力变化量不超过爬坡率上限;
    - 启停状态关联约束:xconv(:,t)-xconv(:,t-1) <= yconv(:,t)(t=2-24),即燃气轮机从停机转为运行时,启停状态变量标记为1。
  1. 市场购售电约束(t=1-24,w=1-3):
    - 状态互斥约束:0 <= umob(w,t)+umos(w,t) <=1,同一时段同一场景下,购电与售电状态不可同时激活;
    - 购电量上限约束:0 <= pmgb(w,t) <= umob(w,t)pmgmax,仅购电状态激活时可购电,且购电量不超过最大交易量;
    - 售电量上限约束:0 <= pmgs(w,t) <= umos(w,t)
    pmgmax,仅售电状态激活时可售电,且售电量不超过最大交易量。
  1. 储能系统约束:
    - 充放电功率约束:0 <= gesc(:,t) <= gescmax0 <= gesd(:,t) <= gesdmax(t=1-24),充放电功率不超过设备额定上限;
    - 蓄电量上下限约束:0 <= sess(:,t) <= sessmax(t=1-24),蓄电量在最小与最大容量之间;
    - 初始蓄电量约束:sess(:,1) == gesc(:,1)uesc - gesd(:,1)/uesd(首时段蓄电量由充电量(含充电效率)与放电量(含放电效率)决定);
    - 时序蓄电量平衡约束:sess(:,t) == sess(:,t-1) + gesc(:,t)
    uesc - gesd(:,t)/uesd(t=2-24),后续时段蓄电量由前一时段蓄电量、本时段充放电量及效率共同决定。
  1. 系统功率平衡约束(w=1-3):
    gesc(w,:)+pload(1,:)+pmgs(w,:) == gesd(w,:)+ppv(w,:)+pmgb(w,:)+pmt(w,:)
    左侧为总消耗功率(储能充电功率+电负荷+市场售电功率),右侧为总供给功率(储能放电功率+光伏出力+市场购电功率+燃气轮机出力),实现供需实时平衡。
  1. CVaR风险约束(w=1-3):
    - 风险损失超额量约束:zk(w) >= -(xbpmgb(w,:)'-xspmgs(w,:)'+axconv(w,:)'+kcppmt(w,:)'+sconv*yconv(w,:)')+varzk(w)为各场景下实际成本超过风险阈值var的部分;
    - 非负约束:zk(w) >=0,风险损失超额量不可为负。

(四)目标函数构建模块

目标函数以“最小化总成本”为核心,总成本由“场景加权期望成本”和“CVaR风险成本”两部分构成:

  1. 场景加权期望成本:按场景概率pai加权求和各场景的调度成本,单个场景成本构成如下:
    成本 = 市场购电成本 - 市场售电收益 + 燃气轮机固定开机费 + 燃气轮机出力费 + 燃气轮机启停费
    数学表达式:xbpmgb(w,:)'-xspmgs(w,:)'+axconv(w,:)'+kcppmt(w,:)'+sconvyconv(w,:)'
    期望成本计算:obj_single = sum(pai(w)
    单个场景成本)(w=1-3)
  1. CVaR风险成本:L(-var + paizk/(1-α)),其中:
    -L=0.8为风险系数(代码注释说明因聚合单元单一,风险系数变化不明显,为区分效果故意设置较高值);
    -α=0.95为置信水平(代码中存在两处CVaR计算表达式,一处为1-0.6,一处为注释的1-0.95,最终结果读取采用1-0.95);
    -var为风险阈值,zk为各场景超额损失变量。
  1. 最终目标函数:obj_single = 期望成本 + L(-var + paizk/(1-0.95))

(五)优化求解模块

  1. 求解器配置:采用CPLEX求解器,通过sdpsettings设置求解参数:
    -'solver','cplex':指定CPLEX为求解器;
    -'verbose',2:显示求解过程日志;
    -'usex0',0:不使用初始变量值;
    -ops.cplex.mip.tolerances.mipgap=1e-6:设置混合整数规划间隙为1e-6,保证求解精度。
  1. 求解执行:调用result=optimize(C,objsingle,ops)执行优化,其中C为所有约束条件集合,objsingle为目标函数。

(六)结果处理与展示模块

  1. 结果读取:通过value()函数提取优化后的关键变量数值,包括pmgb(购电量)、pmgs(售电量)、gesc(储能充电功率)、gesd(储能放电功率)、pmt(燃气轮机出力)、cvar(CVaR风险成本);
  2. 可视化展示:生成6类图形图表,具体如下:
    - 场景1-3功率平衡图:采用堆叠柱状图,分别展示各场景24小时“储能充电、负荷、市场售电”(正向功率)与“储能放电、光伏、市场购电、燃气轮机”(反向功率)的功率分布,标注时间轴与功率单位(MW);
    - 场景1-3市场交易量图:采用折线图,对比各场景24小时购电(红色实线)、售电(蓝色实线)与风险系数=1时购电(红色虚线)、售电(青色虚线)的交易量差异,标注时间轴与功率单位(MW);
  3. 辅助数据输出:直接定义风险系数=1时的购售电量矩阵pmgb1(3×24)和pmgs1(3×24),用于对比分析不同风险系数的影响。

四、代码核心特性

  1. 忠实还原多场景随机规划:基于3个风光出力场景,通过场景概率加权实现不确定性下的调度优化,贴合实际风光出力的随机性;
  2. CVaR风险度量精准:严格遵循CVaR理论构建风险约束与风险成本,支持风险系数自由调节,可直接观测不同风险偏好对调度策略的影响;
  3. 约束体系完整:覆盖设备物理约束(出力、爬坡、充放电)、系统运行约束(功率平衡)、市场交易约束(购售电互斥)及风险约束,确保调度方案可行;
  4. 结果可视化直观:通过柱状图、折线图清晰展示功率平衡与购售电策略,同时提供具体数值矩阵,便于量化分析;
  5. 参数可扩展性强:市场电价、设备参数、场景数量、风险系数等核心参数均集中定义,可直接修改适配不同应用场景。

五、使用说明

(一)运行环境要求

  1. 软件环境:MATLAB(兼容YALMIP工具箱版本)+ YALMIP工具箱 + CPLEX求解器(需激活授权);
  2. 数据准备:将光伏出力数据文件ppv.xlsx放置于代码同级目录,文件格式需为3行24列(3个场景×24小时)。

(二)运行步骤

  1. 打开MATLAB,切换工作目录至代码所在文件夹;
  2. 在命令行输入VPPacev,回车执行程序;
  3. 查看结果:
    - 求解日志:命令行输出CPLEX求解过程(迭代次数、可行性、最优目标函数值);
    - 图形结果:自动弹出6个可视化图表,可直接查看各场景功率平衡与购售电策略;
    - 数值结果:工作区生成pmgbpmgspmt等变量,可直接调用进行后续分析。

(三)参数修改说明

  1. 风险系数调整:修改L的值(如L=0为风险中性,L=1为高风险厌恶);
  2. 场景参数调整:修改Sw(场景数量)、pai(场景概率),同步更新ppv(光伏出力)的维度(需与场景数量一致);
  3. 设备参数调整:直接修改燃气轮机(gtmaxramp等)、储能(gescmaxsessmax等)的参数值;
  4. 电价调整:修改xb数组的24小时电价数值,可适配不同地区的分时电价政策;
  5. 求解精度调整:修改ops.cplex.mip.tolerances.mipgap(如1e-5提升精度,1e-4加快求解速度)。

六、注意事项

  1. 工具箱依赖:确保YALMIP工具箱与CPLEX求解器正确安装且配置成功,可通过yalmiptest验证YALMIP可用性,which cplex验证CPLEX路径正确性;
  2. 数据格式一致性:ppv.xlsx的行数必须与场景数量Sw一致(当前为3行),列数必须为24列(对应24小时),否则会出现维度不匹配错误;
  3. 约束兼容性:修改设备参数(如rampgtmax)时,需确保参数之间逻辑一致(如爬坡率不超过最大出力),避免约束冲突导致求解失败;
  4. 代码注释保留:代码中关于风险系数设置原因、CVaR计算表达式的注释为核心逻辑说明,修改相关参数时需参考注释含义;
  5. 结果解读:CVaR值cvar越大,代表为规避不确定性风险付出的额外成本越高,需结合期望成本综合评估调度方案的经济性与稳健性。

基于条件风险价值CVaR的微网/虚拟电厂多场景随机规划 摘要:构建了含风、光、燃、储的微网/虚拟电厂优化调度模型,在此基础上,考虑多个风光出力场景,构建了微网随机优化调度模型,并在此基础上,基于条件风险价值理论,度量不确定性场景的潜在风险价值,且风险系数可以自由调节,从而观测不同风险偏好下微网的调度策略,深度体会CVaR的有效性。

http://www.cnnetsun.cn/news/2070211.html

相关文章:

  • 实战解析:如何用D3KeyHelper构建暗黑3自动化战斗系统
  • Windows 11任务栏拖放功能终极修复指南:快速恢复文件拖拽体验
  • CubeMX配置DMAMUX的隐藏细节:以STM32H723的EXTI触发DMA为例,聊聊那些容易踩的坑
  • 具身智能体在复杂环境中的责任归属
  • 虚拟机技术
  • 终极指南:在Windows电脑上直接运行安卓APK的完整解决方案
  • 别再只盯着小木虫了!2024年CCF期刊投稿,这3个新工具帮你高效避坑
  • vJoy虚拟手柄:解锁Windows游戏控制的无限可能
  • 如何用SMUDebugTool解锁AMD Ryzen处理器的隐藏性能:完整免费教程
  • 索尼相机完全解锁指南:OpenMemories-Tweak让你的摄影体验升级
  • Python实战:基于Matchms的质谱数据预处理与相似度计算全流程
  • 英雄联盟全能助手League Akari:3分钟快速部署的免费游戏效率神器
  • MATLAB转Python必看:信号处理之EMD分解,两个平台结果为啥不一样?
  • 网盘下载限速终结者:LinkSwift直链助手完整使用指南
  • Jetson Xavier NX 的 CAN 口到底在哪?一个被官网论坛隐藏的引脚真相
  • 终极Windows 11精简指南:使用tiny11builder快速打造高效系统
  • 告别单向控制:用RDM协议给你的DMX灯光系统做个‘体检’和‘点名’
  • 长芯微LDC122S021完全P2P替代ADC122S021,是一款高速率、低功耗、2通道、12位ADC芯片。
  • Linux文件系统相关命令
  • Python玩转PDF表格提取?先搞定这个HuggingFace连接错误(附unstructured库离线部署方案)
  • 终极指南:在Windows电脑上直接运行安卓APK文件的完整解决方案
  • Claude Mythos 预览版在 Mozilla 浏览器发现 271 个漏洞,AI 助力网络安全但两用性存挑战
  • 【MarkDown学习】
  • 私有化部署崛起,教育培训系统源码开发有哪些新趋势?
  • python课程作业
  • TCP的建立与终止——三次握手、四次挥手
  • 终极魔兽争霸III地图编辑器:HiveWE完整指南与实战教程
  • 如何快速为Windows系统添加HEIC缩略图预览功能?终极解决方案来了!
  • Minecraft区块管理终极指南:使用MCA Selector高效清理和优化你的世界存档
  • DLSS Swapper终极指南:3步轻松升级游戏DLSS版本