基于多时间尺度滚动优化的多能源微网双层调度模型—论文复现

目录

一、主要内容:

二、程序运行效果:

二、研究内容摘要:

三、多能源微电网:

四、两阶段多时间尺度调度框架:

五、代码+数据下载:


一、主要内容:

    本代码主要做的是一个多能源微网的优化调度问题,首先对于下层多能源微网模型,考虑以其最小化运行成本为目标函数,通过多时间尺度滚动优化求解其最优调度策略,对于上层模型,考虑运营商以最小化运营成本为目标函数,同时考虑变压器过载等问题,构建了一个两阶段优化模型,通过互补松弛条件以及KKT条件,对模型进行了化简求解。

    模型中包含:可再生能源、CHP机组、电储能、电锅炉等元素

仿真平台:Matlab+Yalmip+Cplex

本代码注释详细,出图美观,适合初学者模仿学习

二、程序运行效果:

二、研究内容摘要:

    基于多能源集成的优势,本文建立了一个基于交互控制的两级两阶段框架,以实现互联多能源系统(MES)之间的最优能源供应。在下层,每个多能源系统通过求解成本最小化问题自主确定其可控资产的最优设定点,其中采用滚动视界优化来处理负荷和可再生能源的随机特征;通过放松储能互补约束进一步实现优化模型凸化技术,其数学证明验证了放松的精确性。在上层,协调器负责在防止变压器过载的同时使互联的 MES 的总成本最小化。这个协作问题在一个提出的两阶段交互式控制框架中反复求解,该框架既符合运行时间要求,又保留了可扩展性、信息隐私和每个 MES 的操作权限。

三、多能源微电网:

    本文假定由一个上层实体(称为系统协调器)负责协调 IMES 和管理互连网络的运行,同时,系统协调器还充当 IMES 与公用电网之间的接口,对调度信号做出策略性响应。在这些假设条件下,我们提出了一个基于 TC 机制的 IMES 能源管理协作自主优化框架,如图 1 所示。在该框架中,每个 MES 自主优化以最小化其运行成本,MES 与系统协调者之间交换激励/响应信号以实现协作优化。

四、两阶段多时间尺度调度框架:

为实现相互连接的 MES 的协同优化,我们提出了一个能保护每个 MES 隐私的双层框架,其中上层系统协调者和下层 MES 操作员相互交换激励/响应信号。还进一步建立了一个新颖的两阶段交互式控制框架,以减少所需的迭代次数,从而适用于日内滚动优化甚至实时优化。

五、代码+数据下载:

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
双层优化算法是一种用于解决多目标优化问题的方法,它将优化问题划分成两个层次:上层和下层。 在上层,我们定义一个目标函数来最小化或最大化一些参数,这些参数是在下层的子问题中定义的。在下层的子问题中,我们通过优化一组约束条件来获得结果,这些约束条件来自于上层定义的优化目标函数。 双层优化算法的优点是能够同时考虑多个目标函数,且在解决高维问题时表出色。在实过程中,可以使用各种方法来构建优化函数和约束条件,并采用不同的求解技术来获得最优解。 下面是一个基于双层优化算法的多目标优化问题的MATLAB代码: %Step 1: Set up the upper level optimization problem x0 = [0.5; 0.5]; %Initial guess for x variable options = optimoptions('fmincon','Display','iter','Algorithm','sqp'); %Set options for optimizer [obj_upper, obj_lower] = evalUpperLevelObj(x0); %Evaluate objective function for upper level lower_level = @(y)evalLowerLevelObj(y,obj_upper); %Define lower level objective function nonlcon_lower = @(y)evalLowerLevelConstraints(y,obj_upper); %Define lower level constraint function %Step 2: Solve the lower level optimization problem Y = fmincon(lower_level,[0;0],[],[],[],[],[],[],nonlcon_lower,options); %Solve the lower level problem using fmincon %Step 3: Evaluate the upper level objective function using results of lower level problem [obj_upper,obj_lower] = evalUpperLevelObj(Y); %Evaluate the upper level objective function %Step 4: Repeat steps 2-3 until convergence is achieved while abs(obj_upper-obj_upper_prev)>0.01 %Convergence criterion obj_upper_prev = obj_upper; %Save previous upper level objective function value Y = fmincon(lower_level,[0;0],[],[],[],[],[],[],nonlcon_lower,options); %Solve lower level problem again [obj_upper,obj_lower] = evalUpperLevelObj(Y); %Evaluate upper level objective function again end function [obj_upper,obj_lower] = evalUpperLevelObj(x) %Upper level objective function obj_upper = [x(1).^2+x(2).^2; (x(1)-1).^2+x(2).^2]; %Two objectives (minimize both) obj_lower = []; %No lower level objective function end function [obj_lower] = evalLowerLevelObj(y,obj_upper) %Lower level objective function obj_lower = [y(1).^2+y(2).^2-obj_upper(1); (y(1)-1).^2+y(2).^2-obj_upper(2)]; %Two constraints (less than zero) end function [c,ceq] = evalLowerLevelConstraints(y,obj_upper) %Lower level constraint function c = []; %No inequality constraints ceq = [y(1)+y(2)-obj_upper(1); y(1)*y(2)-obj_upper(2)]; %Two equality constraints (equal to zero) end 以上是一段简单的实,可以根据实际问题和具体的优化目标进行修改和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值