【复现】【免费】基于多时间尺度滚动优化的多能源微网双层调度模型

简介: 【复现】【免费】基于多时间尺度滚动优化的多能源微网双层调度模型

主要内容  

该模型参考《Collaborative Autonomous Optimization of Interconnected Multi-Energy Systems with Two-Stage Transactive Control Framework》,主要解决的是一个多能源微网的优化调度问题,首先对于下层多能源微网模型,考虑以其最小化运行成本为目标函数,通过多时间尺度滚动优化处理负荷和可再生能源随机性,并求解其最优调度策略;对于上层模型,考虑运营商以最小化运营成本为目标函数,同时考虑变压器过载等问题。最终构建了一个两阶段优化模型,采用次梯度法和二分法对模型进行优化求解,程序采用matlab编写,模块化编程,注释清晰。

 部分代码  

%次梯度法求解
% 用于日前预测或日内作为对比
global EH1 EH2 EH3 elePrice period couldExport minimumPower
delta_lambda_max = 1e-4;
maxIteration = 3000; %最大迭代次数
iterativeStep = 1;
ee = 0.001;
%%按照不同的输出场景,选择不同的约束
if couldExport == 1
    minimumPower = eleLimit_total(2);
else
    minimumPower = 0;
end
if isDA
    %%获取不同IES的参数值
    EH1.predict(0);
    EH2.predict(0);
    EH3.predict(0);
    priceArray_record(:,1) = elePrice;
    prePrice = elePrice;
    temporal = 1;
    st = 1;
else
    temporal =  24* period;%%确定为24h的算例
    st = time;
end
for pt = st : temporal
    if isDA == 0
        %%获取不同IES的参数值
        EH1.predict(pt);
        EH2.predict(pt);
        EH3.predict(pt);
    end
    number = 1; k = 1;
    lamda_old = -10 * ones(24 * period - pt + 1, 1);
    lamda_new = zeros(24 * period - pt + 1, 1); %取初始值:对预测电价没有偏差
    lamda_record = zeros(24 * period - pt + 1 , maxIteration + 1);
    lamda_record(: , number) = lamda_new;
    max_balance=zeros (1 , maxIteration + 1);
    %如果前后两次价格的偏差太大,则返回第1步
    while number <= 2 || max(abs(balanceDemand)) > 100
        % max(abs(lamda_new - lamda_old)) > ee || %| max(abs(clearDemand_new - clearDemand_old)) > 1e-4 %1e-6, 不能直接取0
        % 后一个条件是因为即使lamda收敛后,供需也不平衡,所以需要取一正一负两个点,来求零点
        % && || 的前一个为否,则后一个就不计算了
        % 要求至少迭代两次(number=1,2)
        
        %             if number > maxIteration
        %                 error('超出最大迭代次数');
        %             end
        if number > 1% number=2时才记录第一次
            clearDemand_old = clearDemand_new;
        end
        
        %%依次根据priceArray, gasPrice1, pt三个输入值计算优化结果以及响应结果
        [x1,f1,~,~,~] = EH1.handlePrice(priceArray, gasPrice1, pt);
        %根据priceArray, gasPrice1, pt三个输入值计算EH1优化结果以及响应结果
        clearDemand_EH1_new = x1(1: 24 * period - pt + 1);
         %根据priceArray, gasPrice1, pt三个输入值计算EH2优化结果以及响应结果
        [x2,f2,~,~,~] = EH2.handlePrice(priceArray, gasPrice1, pt);
         %根据priceArray, gasPrice1, pt三个输入值计算EH2优化结果以及响应结果
        clearDemand_EH2_new = x2(1: 24 * period - pt + 1);
         %根据priceArray, gasPrice1, pt三个输入值计算EH3优化结果以及响应结果
        [x3,f3,~,~,~] = EH3.handlePrice(priceArray, gasPrice1, pt);
        clearDemand_EH3_new = x3(1: 24 * period - pt + 1);
        
        %%根据lamda_new(i)的取值,计算不同情况下的电网侧出清结果(上层)
        clearDemand_grid_new=zeros(24 * period - pt + 1 ,1);
        for i = 1: 24 * period - pt + 1
            if lamda_new(i) == 0


 结果一览  

1.原文结果

2.程序运行结果

下载链接

相关文章
|
11月前
|
机器学习/深度学习 运维 算法
基于粒子群优化算法的配电网光伏储能双层优化配置模型[IEEE33节点](选址定容)(Matlab代码实现)
基于粒子群优化算法的配电网光伏储能双层优化配置模型[IEEE33节点](选址定容)(Matlab代码实现)
1020 0
|
机器学习/深度学习 资源调度 自然语言处理
长短时记忆网络(LSTM)完整实战:从理论到PyTorch实战演示
长短时记忆网络(LSTM)完整实战:从理论到PyTorch实战演示
21231 0
|
机器学习/深度学习 人工智能 算法
分位数回归+共形预测:Conformalized Quantile Regression实现更可靠的预测区间
预测不确定性量化在数据驱动决策中至关重要,分位数回归(QR)虽能生成自适应预测区间,但缺乏严格覆盖保证;共形预测(CP)则提供覆盖保证但缺乏强自适应性。Conformalized Quantile Regression (CQR)融合两者优势,通过校准分位数回归模型,生成既适应数据特性又具备统计保证的预测区间。本文深入探讨CQR理论、实现与应用,展示其在医疗、金融等领域提升预测可靠性的潜力,为高风险决策提供更精确和可信的支持。
937 0
分位数回归+共形预测:Conformalized Quantile Regression实现更可靠的预测区间
|
人工智能 运维 监控
数字孪生与能源管理:优化电网运营
数字孪生技术通过集成物联网、大数据、AI等先进科技,为实体对象创建虚拟模型,实现实时监控、故障预测与资源优化。在能源管理中,特别是电网运营方面,数字孪生能显著提升系统的稳定性、安全性和效率,推动智能电网建设,优化资源配置,加速应急响应,成为未来能源管理的关键技术。
|
新能源 调度
日前日内多阶段多时间尺度源荷储协调调度(matlab代码)
日前日内多阶段多时间尺度源荷储协调调度(matlab代码)
|
机器学习/深度学习 人工智能 算法
揭开深度学习与传统机器学习的神秘面纱:从理论差异到实战代码详解两者间的选择与应用策略全面解析
【10月更文挑战第10天】本文探讨了深度学习与传统机器学习的区别,通过图像识别和语音处理等领域的应用案例,展示了深度学习在自动特征学习和处理大规模数据方面的优势。文中还提供了一个Python代码示例,使用TensorFlow构建多层感知器(MLP)并与Scikit-learn中的逻辑回归模型进行对比,进一步说明了两者的不同特点。
942 2
|
机器学习/深度学习 算法 Python
【Python】已完美解决:机器学习填补数值型缺失值时报错)TypeError: init() got an unexpected keyword argument ‘axis’,
【Python】已完美解决:机器学习填补数值型缺失值时报错)TypeError: init() got an unexpected keyword argument ‘axis’,
483 1
|
并行计算 安全 数据库
多线程与多进程之间的区别
多线程与多进程之间的区别
【免费资料】IEEE33节点系统参数及拓扑图visio
初学者入门配电网可参考经典的IEEE 33节点系统,此系统在文献中广泛应用。资源包括节点和支路参数的Excel表格及Visio的网络拓扑图,可免费下载。配电网以闭环设计增强灵活性和可靠性,故障恢复涉及网络拓扑约束。提供的MATLAB相关链接探讨了孤岛、重构及故障恢复策略。
|
安全 搜索推荐 物联网
物联网设备的OTA基本原理
物联网设备的OTA基本原理
2499 1