(复现)微电网两阶段鲁棒优化经济调度方法

前置条件

1.写出所有目标函数,等式约束,不等式约束的一般形式。
2.写出紧凑形式(矩阵表示)。
3.列写主问题,子问题及子问题的对偶问题。

程序改动

类似Ky=0的问题就不提了,说一下对仿真结果影响大的一个因素。
需求响应
可以明显发现,夜间的需求响应实际调度功率并没有像文章中公式(13)P_DR(1)>=0,P_DR(2)>=0那么简单,为了经济最大化会直接到200的。其原因就在于文中少了对其上限的约束,对比发现,可以考虑加入一个系数表明最大转入转出的上限,笔者选取了0.4,没有过多的细究,感兴趣的可以自己摘取所有数据比对一下。

遇到过的问题集合

1.把主要内容注释掉了
在这里插入图片描述

2.输入矩阵错误
在这里插入图片描述
3.目标函数最大值的的的语句
optimize(Constraints,-Objective,options);%-1表示最大值

4.关于 Δ \Delta Δu
文中给的都是正值,但为了保证加号的统一性, Δ \Delta Δu中光伏取负,负荷取正。

5.线性化问题或者子问题求解小于0
参见文献[1],[2]

仿真结果

1.收敛过程
在这里插入图片描述

2.最恶劣情景
在这里插入图片描述在这里插入图片描述
3.调度结果
在这里插入图片描述
4.需求响应
在这里插入图片描述

说明

1.只能大概获得数据,其结果为4593.62(原文4667.10)。
2.需要讨论可以私信;需要代码可以直接加微信,平台不让传(微信:Oranger345)。

参考文献

[1]刘一欣,郭力,王成山.微电网两阶段鲁棒优化经济调度方法[J].中国电机工程学报,2018,38(14):4013-4022
[2]任郡枝. 光伏配电网中储能系统规划方法研究[D].山东大学,2020.

### 实现微电网阶段鲁棒优化经济调度方法 #### 方法概述 为了处理微电网内部可再生能源和负荷的不确定性,采用了一种min-max-min结构的阶段鲁棒优化模型[^3]。此模型旨在找到最恶劣场景下的最低运行成本调度方案。 该模型考虑了储能设备、需求侧负载以及可控分布式能源的运行约束及其协同控制,并引入不确定性的调节参数来调整调度策略的保守程度。利用列与约束生成算法及强对偶理论,可以将原始问题拆分为具备混合整数线性规划特性的主问题和子问题来进行迭代求解,进而获得全局最优解。 #### Python代码实现 下面是一个简化版的例子用于展示如何构建并解决上述提到的阶段鲁棒优化问题: ```python import numpy as np from gurobipy import Model, GRB def two_stage_robust_optimization(): # 创建一个新的Gurobi模型实例 model = Model('TwoStageRobustOptimization') # 定义决策变量 (这里仅作为示意) x = {} # 第一阶段决策变量 y = {} # 第二阶段决策变量 T = range(24) # 时间周期 t=0,...,T-1 N = ['solar', 'wind'] # 可再生能源种类 n ∈ {太阳能,风能} for t in T: x[t] = model.addVar(name=f'x_{t}', lb=-GRB.INFINITY) for n in N: for t in T: y[n,t] = model.addVar(name=f'y[{n},{t}]') # 设置目标函数:最小化总费用 obj_expr = sum(x[t]*cost(t)+sum(y[n,t]*(price(n)-c[n])for n in N)for t in T) model.setObjective(obj_expr, sense=GRB.MINIMIZE) # 添加第一阶段约束条件... for t in T: expr = ... # 构造表达式 model.addConstr(expr >= demand[t], name=f'demand_satisfaction_t{t}') # 添加第二阶段约束条件... for n in N: for t in T: expr = ... model.addConstr(expr <= capacity[n], name=f'resource_limitation_n{n}_t{t}') # 更新模型以反映新添加的内容 model.update() # 解决问题 model.optimize() if model.status == GRB.OPTIMAL: print("找到了最优解:") for v in model.getVars(): print(f"{v.varName}={v.x}") print(f"最优值:{model.objVal:.2f}") two_stage_robust_optimization() ``` 请注意,在实际应用中还需要定义具体的`cost()`, `demand[]`, `capacity[]`, 和其他必要的输入数据;此外,还需根据实际情况完善各个约束的具体形式。以上代码片段主要展示了框架搭建过程中的关键要素。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱吃沙糖桔

给我一份爱,会还你一份情的。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值