(文章复现)微电网两阶段鲁棒优化经济调度方法(含matlab代码) | 您所在的位置:网站首页 › matlab编写ldu分解 › (文章复现)微电网两阶段鲁棒优化经济调度方法(含matlab代码) |
一、文献中存在的笔误
文献中两阶段鲁棒优化的模型的构建是基于下面这个确定性优化: 但是我复现的时候发现,这个模型其实是有点小问题的,第三行约束条件写的是Ky=0,但是对应的约束条件中等式右边并不全为零,所以按照常理,这一个约束应该写成Ky=k。但不确定这个文章是做了线性变换还是笔误。我也在这里纠结了好久。 后面不知怎么的,我想着给文章通信作者发邮件询问一下,没想到真的收到回复了。刘一欣老师说这里确实是个笔误,等式右边应还有一个列向量。特别感谢刘老师可以回复我这个小菜鸡,不然我要在这上面纠结很久。 我询问的邮件: 刘一欣老师的回复:
因为根据强对偶定理,对偶变量 同时因为约束Ky=0这一项要改成Ky=k,所以子问题的目标函数也要加上 解决了上面这些问题,后面的建模就相对没有那么困难了。 二、决策变量和约束矩阵决策变量x是一个48维的列向量: 决策变量y是一个240维的列向量: c和y一样都是一个240维的列向量: D是一个144行240列的矩阵,d是一个144维的列向量,Dy≥0可以写成矩阵形式:
K是一个50行240列的矩阵,k是一个50维的列向量,Ky=k可以写成矩阵形式: 式中, F是一个96行48列的矩阵,G是一个96行240列的矩阵,h为96维的列向量,Fx+Gy≥h可以写成矩阵形式: 这样就实现了完成了所有系数矩阵的输入。 其他没有在矩阵中涉及的约束条件,用y>0表示即可。 三、matlab代码 %% 清理内存空间 clc clear close all %% 随机生成初始的光伏出力和负荷大小 u_sharp=creat_situation; %% 迭代求解两阶段鲁棒优化问题 it_max=10;%最大迭代次数 LB=zeros(1,it_max); UB=zeros(1,it_max); e=zeros(1,it_max); for it=1:it_max [x,LB(it),~]=master_problem(u_sharp); [u_sharp,UB(it)]=sub_problem(x); e(it)=UB(it)-LB(it); if abs(e(it)) |
CopyRight 2018-2019 实验室设备网 版权所有 |